
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
def solution(arr1, arr2):
answer = []
for row in range(len(arr1)):
r = []
for col in range(len(arr1[0])):
r.append(arr1[row][col] + arr2[row][col])
answer.append(r)
return answer
이중 for문을 이용해 두 행렬의 대응하는 값들을 하나하나 더해줬다.
먼저, 각 행에 차례대로 접근하고 그다음 해당 행에서 각 열에 차례대로 접근했다.
import numpy as np
def sumMatrix(A,B):
A_np = np.array(A)
B_np = np.array(B)
result = A_np + B_np
return result.tolist()
numpy를 활용한 풀이다. numpy는 다차원 배열을 쉽게 처리할 수 있도록 지원하는 패키지이다.
numpy를 이용하면 for문을 사용하지 않고도 간단하게 행렬 연산이 가능하다.
numpy.array 는 array_like는 타입을 ndarray 타입으로 변환한다.
이때, array_like는 array로 해석될 수 있는 모든 형태를 포함한다. 예를 들어, list, tuple 등이 있다.
그리고 ndarray는 N-dimensional Array의 약자로, NumPy의 다차원 행렬 자료구조이다.
NumPy를 공부하고 사용해봤지만 정작 행렬 연산 문제를 봤을 때 생각하지 못 했다.
앞으로는 파이썬의 패키지도 적극 활용해야겠다.