코테 공부/프로그래머스
[Python] 행렬의 덧셈
prefer_all
2022. 8. 2. 19:06
문제
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
입출력 예시
arr1 | arr2 | return |
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
풀이
1) numpy 이용
import numpy as np
def solution(arr1, arr2):
np_arr1 = np.array(arr1)
np_arr2 = np.array(arr2)
sum_arr = np_arr1 + np_arr2
return sum_arr.tolist()
2)
행: len(arr)
열: len(arr[0]
arr= [[1,2,3],[2,3,4]] # 2*3
print(len(arr)) #2
print(len(arr[0])) #3
출력 형식이 [[],[]] ex)[[4,6],[7,9]]
def solution(arr1, arr2):
for i in range(len(arr1)):
for j in range(len(arr1[0])):
arr1[i][j] = arr1[i][j] + arr2[i][j]
return arr1
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
temp = []
for j in range(len(arr1[0])):
temp.append(arr1[i][j] + arr2[i][j])#한 행의 결과를 append할 수 있게 함
answer.append(temp) #그래야지 []안에 []들어감
return answer
아래처럼 answer에 바로 append 시
실행한 결괏값 [4,6,7,9]이 기댓값 [[4,6],[7,9]]과 다릅니다. |
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
for j in range(len(arr1[0])):
answer.append(arr1[i][j] + arr2[i][j])
return answer