코딩 테스트/Python

행렬의 덧셈

susinlee 2024. 12. 15. 21:29

[문제]

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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