행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
| arr1 | arr2 | return |
|---|---|---|
| [[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
| [[1],[2]] | [[3],[4]] | [[4],[6]] |
import numpy as np
def solution(arr1, arr2):
a1= np.array(arr1)
a2= np.array(arr2)
return (a1 + a2).tolist()

tolist()
np.array()로 행렬을 만드는 방법에 대해서는 정말 많은 포스팅이 있었으나 행렬을 다시 이차원배열로 만드는 방법은 아무리 검색해도 나오지 않았다. (내 검색방법이 잘못 됐을수도,,,) 그런데 챗GPT가 아주 속시원히 해결해 주었다♥
def solution(arr1, arr2):
answer = [[c + d for c, d in zip(a,b)] for a, b in zip(arr1,arr2)]
return answer

zip은 두 개의 리스트를 서로 묶어줄 때 사용합니다.
name = ['merona', 'gugucon'] price = [500, 1000] z = zip(name, price) print(list(z))아래와 같이 나타납니다.
[('merona', 500), ('gugucon', 1000)]
* 튜플 언팩킹(unpacking)을 활용해서, x라는 변수를 한개만 이용해서 두개의 튜플을 받아들여 처리하는 방식def solution(arr1, arr2):
return [list(map(sum, zip(*x))) for x in zip(arr1, arr2)]
def solution(arr1, arr2):
for i in range(len(arr1)):
for j in range(len(arr1[0])):
arr1[i][j] += arr2[i][j]
return arr1
