본문 바로가기
알고리즘/programmers

[programmers] 행렬의 덧셈 / python

by goldory 2021. 1. 7.
728x90
반응형
def sumMatrix(A,B):
    answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)]
    return answer

문제 설명

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

제한 조건

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

입출력 예

arr1 arr2 return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

내 코드

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

zip을 활용해보려고 했는데 튜플 형태로 반환되는 것과 [[ ],[ ]] 형태로 output을 만드는 부분에서 어려움이 있었다.

찾아보니 zip을 활용한 코드도 있다.

 

def sumMatrix(A,B):
    answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)]
    return answer

for문과 if문을 한줄로 코딩하는 습관을 들여야겠다.

728x90
반응형