행렬의 덧셈
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
방법 1. 이중 for문 사용
def solution(arr1, arr2):
answer = []
for i,j in zip(arr1, arr2): # arr1의 각 행(i)과 arr2의 각 행(j) 동시 순회
row_sum = [] # 원소들의 합을 저장할 리스트 생성
for n,m in zip(i,j): # i와 j 행의 각 원소 동시 순회
row_sum.append(n+m)
answer.append(row_sum)
return answer
- zip 함수:
- 여러 개의 iterable(반복 가능한 객체)을 병렬적으로 순회하면서, 각 iterable에서 같은 인덱스에 있는 요소들을 하나의 튜플로 묶어주는 내장 함수
방법 2. numpy 사용
import numpy as np
def solution(arr1, arr2):
answer = np.array(arr1) + np.array(arr2)
return answer.tolist()
- 리스트를 numpy 배열로 변환 후 덧셈 수행
- np.array(arr1)와 np.array(arr2):
입력받은 리스트 arr1과 arr2를 numpy 배열로 변환
numpy 배열은 동일한 크기의 행렬 덧셈 등 벡터화 연산 지원
- np.array(arr1)와 np.array(arr2):
- 결과 배열을 리스트로 변환하여 반환
- answer.tolist()
numpy 배열인 answer를 다시 파이썬의 기본 리스트(리스트의 리스트 형태)로 변환
이렇게 변환한 후 결과를 반환하면, 파이썬 내장 자료형으로 작업 가능
- answer.tolist()
'Python' 카테고리의 다른 글
Python 코드카타: 직사각형 별찍기 | 최대공약수와 최소공배수 (0) | 2025.02.12 |
---|---|
Python 챌린지반 과제: 코드 저장하고 빅쿼리에 데이터 올리기_시행착오.. (0) | 2025.01.22 |
Python 챌린지반 과제: API구현하고 출력하기 (0) | 2025.01.20 |
Python 코드카타: 부족한 금액 계산하기 | 문자열 다루기 기본 (0) | 2025.01.13 |
Python 코드카타: 약수의 개수와 덧셈 | 문자열 내림차순으로 배치하기 (0) | 2025.01.08 |