출처 : 프로그래머스
문제
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬을 입력받는 sumMatrix 함수를 완성하여 행렬 덧셈의 결과를 반환해 주세요.
예를 들어 2x2 행렬인 A = ((1, 2), (2, 3)), B = ((3, 4), (5, 6)) 가 주어지면, 같은 2x2 행렬인 ((4, 6), (7, 9))를 반환하면 됩니다.(어떠한 행렬에도 대응하는 함수를 완성해주세요.)
내 풀이
def sumMatrix(A, B):
answer = []
for i, j in zip(A, B):
templist = []
for x, y in zip(i, j):
templist.append(x + y)
answer.append(templist)
return answer
이후 컴프리헨션으로 교체
def sumMatrix(A, B):
answer = [[x + y for x, y in zip(i, j)] for i, j in zip(A, B)]
return answer
다른사람의 풀이
def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)]
return answer
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(sumMatrix([[1,2], [2,3]], [[3,4],[5,6]]))
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
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(sumMatrix([[1,2], [2,3]], [[3,4],[5,6]]))
배운점
- 리스트컴프리헨션의 방향은 오른쪽에서 왼쪽으로
zip
을 사용하면 두개의list
의 같은 인덱스 요소들을 풀어서 하나의 튜플로 묶어 준다.
Comments