1. 프로그래머스 행렬의 덧셈 문제
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
조건
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
n | return |
---|---|
12345 | [5,4,3,2,1] |
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 a,b in zip(arr1,arr2):
answer.append([c+d for c,d in zip(a,b)])
return answer
여기서 key point는 zip함수를 떠오르는 것이다.
그 이유는 같은 index값들의 연산을 해 같은 위치에 리스트에 append해줘야하기 때문이다.
처음에는 어떻게 이중 리스트안에 넣을 수 있을까 고민하다 이중 for문을 돌리다 실패하였다.
그러다가 리스트에 덧셈이 된 리스트를 바로 append하는 방식을 취했다.
그러기위해선 이중 for문이 필요하지만 값을 더해서 바로 리스트로 뽑아낼 수 있는 리스트 컴프리헨션 반복문인 [표현식 for 항목 in 반복 가능한 객체]를 사용했다.