728x90
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
<풀이>
def solution(arr1, arr2):
for i in range(len(arr1)):
for j in range(len(arr1[i])):
arr1[i][j] += arr2[i][j]
return arr1
def solution(arr1, arr2):
문제에서 원하는 결과를 넘겨주는 solution 함수를 만들어야 한다. 리스트 두 개가 주어지고 각 리스트의 같은 번쨰 수를 더한 리스트를 출력해 주면 된다.
for i in range(len(arr1)):
일단 반복해서 더해줘야 한다는 개념을 생각하면 for문을 사용하게 된다. for문을 통해 처음 받은 리스트의 길이만큼 반복을 실행해 준다. 2중 리스트를 쓰고 있으므로 리스트 안에 리스트가 몇 개가 있는지 확인하고 그 수 만큼 반복하는 것이다.
for j in range(len(arr[i])):
2중 리스트에서 2번째 리스트 값 만큼 반복을 해주기 위해 for 문을 만들어 준다.
arr1[i][j] += arr2[i][j]
각 자리수 별로 더해주고
return arr1
리턴을 해주면 끝이다.
프로그래머스에서는 answer로 리턴을 해줘야 하니까 answer에 담아서 제출하면 된다.
이해가 잘 가지 않는다면 아래 코드를 참고하자
def solution(arr1, arr2):
for i in range(len(arr1)):
print(i, ' i값')
for j in range(len(arr1[i])):
print(j, ' j값')
arr1[i][j] += arr2[i][j]
return arr1
print(solution([[1,2],[2,3]],[[3,4],[5,6]]))
이해를 돕기 위한 코드
0 i값
0 j값
1 j값
1 i값
0 j값
1 j값
[[4, 6], [7, 9]]
이해를 돕기 위한 코드의 출력값
728x90
'CodingTest > [프로그래머스 LV.1]' 카테고리의 다른 글
프로그래머스 LV.1 - 최대공약수와 최소공배수[Python] (0) | 2023.02.01 |
---|---|
프로그래머스 LV.1 - 직사각형 별찍기[Python] (0) | 2023.02.01 |
프로그래머스 LV.1 - 부족한 금액 계산하기[Python] (0) | 2023.02.01 |
프로그래머스 LV.1 - 문자열 다루기 기본[Python] (0) | 2023.02.01 |
프로그래머스 LV.1 - 약수의 개수와 덧셈[Python] (0) | 2023.02.01 |