알고리즘/이것저것

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

아뵹젼 2022. 9. 1.

 

 

나의 풀이

def solution(arr1, arr2):
    answer = []
    for i,j in zip(arr1, arr2) :
        answer.append([x+y for x,y in zip(i,j)])
    return answer

arr1 이 [[1,2],[2,3]] arr2 가 [[3,4],[5,6]] 일 때를 가정하자.

zip함수를 사용하면 for문을 처음 돌 때 i는 [1,2], j는 [3,4] 가 되어 이차원을 일차원로 한 층 벗겨낸다.

이 i와 j의 원소들을 더해 하나의 리스트로 만들어야 하므로, zip함수를 한 번 더 사용해야 한다.

따라서 x는 1 y는 3이 되어 이를 더한 4와 ,

x는 2 y는 4가 되어 이를 더한 6,

즉 [4,6] 이라는 하나의 list 가 answer 가 append된 것이다.

 

 

참고로 아래 함수를 한줄코드로 줄이기 위해 [x+y for x,y in zip(i,j)] 로 사용하였다.

    tmp = []
    for x,y in zip(i,j) :
        tmp.append(x+y)

answer.append(tmp)

 

댓글