알고리즘 풀이/프로그래머스

[Level1] 행렬의 덧셈

mhko411 2021. 1. 22. 22:37
728x90

문제

행렬의 덧셈을 하여 2차원 리스트로 출력하기

 

입력

arr1 = [[1,2],[2,3]]

arr2 = [[3,4],[5,6]]

 

출력

[[4,6],[7,9]]


문제를 푸는 것은 어려움이 없었지만 2차원 리스트에 요소를 추가할 때 어려움을 겪었다. 

아래는 처음에 작성했던 코드이다.

아래처럼 answer가 빈 2차원 리스트를 생성하고 answer[y]에 요소를 추가하는 식으로 진행했다.

하지만 리스트의 범위를 벗어났다는 오류메시지가 출력되었다.

현재까지 오류의 원인을 이해하지 못하겠다.

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

for y in range(len(arr1)):
    for x in range(len(arr1[y])):
        answer[y].append(arr1[y][x]+arr2[y][x])
    
print(answer)

 

2차원 배열에 데이터를 추가할 때는 1차원 리스트를 생성하고 이곳에 1차원 리스트를 추가하는 식으로 진행한다.

결과적으로 [list, list, list]가 되어 2차원 리스트가 되는 것이다.

def solution(arr1, arr2):
    answer = []
    temp=[]
    for y in range(len(arr1)):
        for x in range(len(arr1[y])):
            temp.append(arr1[y][x]+arr2[y][x])
        answer.append(temp)
        temp=[]
    return answer