본문 바로가기

3. 알고리즘/프로그래머스

[python] 14. 행렬의 덧셈(feat. zip 함수)

728x90

문제 설명

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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):
    answer2 = list()
    for m in range(len(arr1)):
        answer1 = list()
        for n in range(len(arr1[0])):
            answer1.append(arr1[m][n]+arr2[m][n])
        answer2.append(answer1)
    return answer2

 

다른 풀이

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

zip함수로 이렇게 간단하게 쓸 수 있다니,,,ㅇ0ㅇ

 

* zip(*iterable): 동일한 개수로 이루어진 자료형을 묶어 주는 역할을 하는 함수이다. 여기서 사용한 *iterable은 반복 가능한 자료형 여러 개를 입력할 수 있다는 의미이다.

 

 

 

 

728x90