반응형
Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

UP

[프로그래머스 : PYTHON] 행렬의 덧셈 본문

알고리즘/기타

[프로그래머스 : PYTHON] 행렬의 덧셈

cijbest 2021. 6. 5. 17:59

문제 설명

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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]]

 

문제풀이

처음엔 zip()으로 풀고 싶었는데 zip 함수에 대한 이해가 완전하지 않아서 결국 for문 두개로 하나씩 탐색해 가면서 풀었다. '다른 사람 풀이'를 참고해서 풀면 좋다.

 

arr1 => [[1,2],[2,3]], arr2 => [[3,4],[5,6]]

첫 번째 zip : [ ( [1,2], [3,4] ), ( [2,3], [5,6] ) ]

두 번째 zip : [ ( (1, 3), (2, 4) ), ( (2, 5), (3, 6) ) ]

 

전체코드

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

 

다른 사람 풀이

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

 

반응형
Comments