알고리즘/프로그래머스

프로그래머스 Level 1) 행렬의 덧셈(열끼리 덧셈)

luana_eun 2021. 11. 17. 19:59
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]]

 

 

접근방법

 

 

정답1. 

최근 새로운 for문 사용법을 보고 공부했기에 그 방법으로 적용해서 풀어봤다. 

def solution(a, b):
    answer = [[a[i][j]+b[i][j] for j in range(len(a[0]))] for i in range(len(a))]

    return answer
    
# 테스트를 위한 출력 코드 
print(sumMatrix([[1,2], [2,3]], [[3,4],[5,6]]))

 

 

정답2.

프로그래머스 다른 풀이에서 본 방법으로, 원소 하나하나씩 더해가는 방법이다. 

def sumMatrix(a,b):
    for i in range(len(a)) :
        for j in range(len(a[0])):
            a[i][j] += b[i][j] 
    return a

 

 

정답3.

내부 리스트를 만들어서 최종 리스트에 담는 방식이다. (처음 리스트 만드는거 공부했을때 사용한 방법)

answer = []

for i in range (len(a)):
    #내부 리스트를 만들기 위한 빈 리스트 선언.
    test = []
    for j in range (len(a[0])):
        r = a[i][j] + b[i][j]
        test.append(r)
    #내부 리스트를 answer 리스트에 넣음. 
    answer.append(test)

print(answer)
728x90