본문 바로가기

Algorithm & SQL/Programmers

[Programmers] [Python] 행렬의 덧셈

행렬의 덧셈


문제 설명


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

제출코드


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

코드설명


Line 2 : 반환하기 위한 list 선언

Line 3 : arr1arr2의 size는 같으니 둘 중 아무것을 잡아서 길이만큼 순회

Line 4 : arr1arr2의 합을 저장할 tmp 리스트 선언

*Line 5 : * 2차원 배열을 고려하여 arr1[0]의 길이만큼 순회

Line 6~7 : 각 배열의 [i][j]번째 원소를 더하여 tmp리스트에 append이후 answerappend

Line 8 : answer 반환

다른 사람의 풀이


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

zip의 성질을 잘 활용하여 문제를 푸셨다..ㄷ