알고리즘

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

hminor 2023. 7. 3. 09:55
# 아주 일반적인 코드

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

 

# zip, map 메서드를 사용한 코드

def solution(A,B):
    return [list(map(sum, zip(*i))) for i in zip(A, B)]
    
solution([[1,2],[2,3]]	, [[3,4],[5,6]])
# =========================================================

# 우선 zip(A,B)을 해서 나온 i는 
#   [([1, 2], [3, 4]), ([2, 3], [5, 6])]
# 	각 2차원 배열의 첫 행을 가져오게 된다.
# 	그리고 zip(*i)하게 되면 ([1, 2], [3, 4]) 가 [1,2],[3,4] 로 분리되고  
# 	map과 sum을 이용해 각 요소를 더하게 된다.