[프로그래머스 / Python] 행렬의 덧셈

Kaylee·2023년 9월 22일

programmers

목록 보기
4/6
post-thumbnail

문제 설명

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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를 공부하고 사용해봤지만 정작 행렬 연산 문제를 봤을 때 생각하지 못 했다.
앞으로는 파이썬의 패키지도 적극 활용해야겠다.

0개의 댓글