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
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Level 1) 리스트 평균 구하기 (0) | 2021.11.18 |
---|---|
프로그래머스 Level 1) 핸드폰 번호 가리기 (0) | 2021.11.17 |
프로그래머스 Level 1) x만큼 간격있는 n개의 숫자 (0) | 2021.11.16 |
프로그래머스 Level 1) 직사각형 별찍기 (0) | 2021.11.16 |
프로그래머스 Level 1) 2016년 (0) | 2021.11.15 |