[문제]
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
[풀이]
arr1 = [[1, 2], [2, 3]]
arr2 = [[3, 4], [5, 6]]
두 배열(행렬)을 덧셈해서 [[4, 6], [7, 9]]를 만들어야 한다.
1과 3을, 2와 4를, 2와 5를, 3과 6를 더해야 한다
zip을 이용해 풀어보자
zip(arr1, arr2) 를 하면 다음과 같다.
1번 요소 ([1, 2], [3, 4])
2번 요소 ([2, 3], [5 ,6])
arr1[0] 과 arr2[0] 을 묶고, arr1[1] 과 arr2[1] 을 묶어주는 것이다.
요소 하나를 가져와서 a와 b에 할당한다
a = [1, 2]
b = [3, 4]
그리고 이를 또 zip으로 묶어보자. 그러면 아래와 같다.
(1, 3), (2, 4)
이 중 요소 하나를 가져와서 c와 d에 할당한다
c = 1
d = 3
이 둘을 더해주면 4가 된다.
리스트 컴프리헨션으로 이 과정을 구현해보면 다음과 같다.
def solution(A, B):
return [[a + b for a, b in zip(rowA, rowB)] for rowA, rowB in zip(A, B)]
'코딩 테스트 > Python' 카테고리의 다른 글
3진법 뒤집기 (0) | 2024.12.15 |
---|---|
최대공약수와 최소공배수 (0) | 2024.12.15 |
부족한 금액 계산하기 (0) | 2024.12.15 |
약수의 개수와 덧셈 (0) | 2024.12.15 |
음양 더하기 (0) | 2024.12.15 |