어제 목표 & 오늘 완료한 한 일
알고리즘 문제- 자바 종합 문법 복습 (2주차) → 진행중
팀 프로젝트회의
내일 목표
- 알고리즘 문제
- 자바 종합 문법 복습 (2주차)
- 팀 프로젝트
발생한 문제와 해결
def solution(arr1, arr2):
answer = [[]]
for i in range(len(arr1)):
for j in range(len(arr1[i])):
answer[i][j] = arr1[i][j] + arr2[i][j]
return answer
이와 같이 코드를 작성했는데 아래와 같은 에러가 발생했다.
IndexError: list assignment index out of range
해당 에러는 빈 인덱스를 지정했을 때 발생하는 것이라고 한다. (https://wantoknowtotellthenstudy2.tistory.com/32)
그래서 해당 블로그(https://velog.io/@sjy5386/Python-2%EC%B0%A8%EC%9B%90-%EB%B0%B0%EC%97%B4-%EC%84%A0%EC%96%B8%ED%95%98%EA%B8%B0)를 참고해 아래와 같이 코드를 수정해주었더니 문제가 해결되었다.
def solution(arr1, arr2):
answer = [[0 for j in range(len(arr1[i]))] for i in range(len(arr1))]
for i in range(len(arr1)):
for j in range(len(arr1[i])):
answer[i][j] = arr1[i][j] + arr2[i][j]
return answer
느낀점
원래는 알고리즘 문제를 금방금방 푸는 편이었는데 며칠 전부터 문제를 푸는 데 시간이 많이 쓰이는 것 같다.
위에서 언급한 코드대로 작성하였더니 문제는 해결되었지만 가독성도 떨어지고 실행시간도 너무 길었다. 다른 사람의 코드를 보니 zip()을 사용한 것을 볼 수 있었다. 나도 처음에는 zip()을 이용해 문제를 풀어보려고 했는데, 결과가 내가 생각한대로 나오지 않아 다른 방법을 선택했던 것이었다. 그리고 내 코드를 보고 너무 지저분한 것 같아서 아래와 같은 형식으로
def sumMatrix(A,B):
answer = [[A[i][j] + B[i][j] for j in range(len(A[0]))] for i in range(len(A))]
return answer
코드를 변경하고 싶었는데 실력이 부족해서 못했었다. 그런데 다른 사람의 코드를 보다보니 해당 코드를 보게 되었고, 이렇게 하는거였구나 라는 생각을 했다. 그리고
def sumMatrix(A,B):
for i in range(len(A)):
for j in range(len(A[0])):
A[i][j] += B[i][j]
return A
이런식으로 작성하게 되면 초기화를 해주지 않아도 되겠구나 생각했다. 잘 하고 있는건지 모르겠다.
그리고 어제 개인과제가 마무리되었고, 오늘부터는 팀 과제가 시작되었다. 팀 과제 코드를 작성하기 앞서, 팀원들과의 회의를 통해 코딩컨벤션, 프로그램 틀 잡기 등 여러 가지 이야기를 나누었다. 팀 과제도 잘 마무리 되었으면 좋겠다!
저녁식사 후, 깃허브 특강을 들었는데 들어는 봤지만 사용해보지 못한 기능과 여러 명령어들에 대해서 알 수 있는 시간이어서 좋았다.
'TIL & WIL' 카테고리의 다른 글
[TIL] #43. 231026 (0) | 2023.10.27 |
---|---|
[TIL] #42. 231025 (0) | 2023.10.25 |
[TIL] #40. 231023 (0) | 2023.10.23 |
[WIL] #6. 231016~231022 (1) | 2023.10.22 |
[TIL] #39. 231022 (1) | 2023.10.22 |