[Level 1] 행렬의 덧셈

풀이 1

arr1_1 = [[1, 2], [2, 3]]
arr2_1 = [[3, 4], [5, 6]]

arr1_2 = [[1], [2]]
arr2_2 = [[3], [4]]


import numpy as np


def solution(arr1, arr2):
    A = np.array(arr1)
    B = np.array(arr2)
    return (A + B).tolist()


print(solution(arr1_1, arr2_1))
print(solution(arr1_2, arr2_2))

numpy를 사용하면 안되는 줄 알았는데 적어도 Programmers에서는 사용 가능한 것 같다.
np.array를 이용해 ndarray로 변환 후 더해주었고 마지막에 tolist() 메소드를 이용해서 리스트로 변환해 주었다.

행렬 연산에는 아무래도 numpy가 편한데 코테에서 numpy를 사용 못하게 할 수 있으니 다른 솔루션도 살펴봐야 한다.

풀이 2

def solution(arr1, arr2):
    answer = [[c + d for c, d in zip(a, b)] for a, b in zip(arr1, arr2)]
    return answer

리스트 컴프리헨션과 zip을 사용한 풀이이다.

풀이 3

def solution(arr1, arr2):
    for i in range(len(arr1)):
        for j in range(len(arr2[0])):
            arr1[i][j] += arr2[i][j]
    return arr1

좋은 웹페이지 즐겨찾기