문제
https://school.programmers.co.kr/learn/courses/30/lessons/12950
1. 코드 설명
- 반복문을 행렬의 모든 행에 대해 수행해야함
- 행렬의 행의 개수를 확인하고 각 원소의 값을 더해주는 반복문
2. 코드 실행
// 첫번째 시도
def solution(arr1, arr2):
answer=[]
for i in range(len(arr1)):
for j in range(len(arr1[0])):
row= [arr1[i][j] + arr2[i][j]]
answer.append(row)
return answer
> 이러한 결과값이 나왔다. ㅠㅠ 그러니까 내가 각 원소의 값은 더할 수 있는데
한 개의 리스트로 값을 반환하지 못하니까 행렬로 인식하지 못하고
그냥 원소끼리 더한 사람됨..ㅋㅋ
그래서 이 부분에 대해서 계속 고민했다.. 계속 더하는게 문제가 아니고 첫번째 행렬의 값들을 반환하고, 두번째 값들을 반환해야한다. <<- 이게 포인트였다.
그러니까 내 코드의 문제점은
- 한 행렬의 값마다 묶어서 저장할 리스트가 없음 ( 그냥 answer로 전체로 묶어버림)
- 한 행렬의 값마다 묶어서 덧셈을 하고 다시 반복문을 반복해야하는데 그런게 없음
// 두번째 시도
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
row=[]
for j in range(len(arr1[0])):
row.append(arr1[i][j] + arr2[i][j])
answer.append(row)
return answer
- 각 행렬의 덧셈을 하면 초기화하고, 다시 새로운 덧셈을 하도록 행렬 반복 한번 일어나면, row 값이 초기화되게끔 수정
- row.append를 해주어 각 원소들이 한 리스트 안에로 묶이게끔 한다. 즉 [4,6] => 이거 하나는 row 값이 되고, [[4.6],[7,9]] 이거는 answer리스트의 값이 되는 것이다!
3. 결과
으앗.. 뭔가 처음에 감은 바로 잡히는데.ㅠㅠ 디테일적인 부분에서 놓치는 부분들이 분명히 있는 것 같다...
공부 정말 열심히해야겠다고 (매번) 다짐하게 된다 큐ㅠㅠㅠ
'Algorithm > 항해일지 TIL' 카테고리의 다른 글
[DAY 9] 프로그래머스 LV1. 짝수와 홀수 (0) | 2024.04.06 |
---|---|
[DAY 8] 프로그래머스 LV1. 하샤드 수 (0) | 2024.04.05 |
[DAY 6] 프로그래머스 LV1. 음양 더하기 (0) | 2024.04.02 |
[DAY 5] 프로그래머스 LV1. 문자열 내림차순으로 배치하기 (0) | 2024.04.01 |
[DAY 5] 프로그래머스 LV1. 자연수 뒤집어 배열로 만들기 (0) | 2024.04.01 |