Python/알고리즘

프로그래머스-파이썬 (행렬의 덧셈)

SeongWon 2020. 4. 19. 20:39
반응형

Q. 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

 

<제한사항>

  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

<입출력 예시>

 


<내 풀이>

 

answer = []

def solution(arr1, arr2):
    for i in range(len(arr1)):
        result = []
        for j in range(len(arr1[i])):
            result.append(arr1[i][j] + arr2 [i][j])
        
        answer.append(result)
    return answer

이중리스트는 행렬로 볼 수 있다.

그 행렬의 요소에 각각 접근하기 위해서 이중 for문으로 코드를 작성해야한다. input 데이터가

(1,2) (3,4)  

(2,3) (5,6) 라고 하면

같은 자리에 있는 행렬의 요소 계산이 끝나면 임시로 만들어둔 result 리스트에 그 결과를 append 해주고,

한 행의 계산이 끝나면 그 result 리스트 결과를 answer에 append해주어서 이중리스트 형태를 유지하게 했다.

 

<다른 사람의 풀이>

 

import numpy as np
def sumMatrix(A,B):
    A=np.array(A)
    B=np.array(B)
    answer=A+B
    return answer.tolist()

numpy 모듈을 import하여 사용하면 더욱 편하게 수행이 가능하다.

최대한 알고리즘을 짜서 해결하고싶어서 사용하지 않았지만 역시 모듈을 이용해도 될 경우에는

모듈을 사용하는 것이 훨씬 편하다.

반응형