level1_행렬의 덧셈
2024. 2. 4. 16:47ㆍ파이썬_알고리즘(코딩테스트)/level1

내가 제출한 코드
def solution(arr1, arr2):
for i in range(len(arr1)):
for j in range(len(arr1[0])):
arr1[i][j] += arr2[i][j]
return arr1
tistory에서 코드 for문 밑에 이중 for문을 들여쓰기를 해주는데.. 자꾸 같은 줄에... 나오는 거같다....
우선 2차원 리스트는 행, 열(세로, 가로) 순으로 접근한다.

리스트[세로인덱스][가로인덱스]
for i in range(len(arr1)): # 세로크기 2
for j in range(len(arr1[0])): # 가로 크기 arr1[0] : [1,2] ( 입출력 예로) -> 2
arr1[i][j] += arr2[i][j]는 arr1의 i번째 행과 j번째 열에 위치한 요소에 arr2의 동일한 위치(i번째 행, j번째 열)에 있는 요소를 더한다.
다른 사람이 제출한 코드
def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a,b)] for a, b in zip(A,B)]
return answer
예를 들어
- A = [[1, 2], [3, 4]]
- B = [[5, 6], [7, 8]]
- 행렬 묶기
- zip(A,B)를 통해 A와 B의 각 행을 짝지어 준다.
- 첫 번째 행끼리 짝이 지어지고, 두 번째 행끼리 짝이 지어진다.
- A, B의 결과 : [([1, 2], [5, 6]), ([3, 4], [7, 8])]
- 요소별 합 계산
- c + d으로 새로 만들어진 행에서는 c는 A의 요소, d는 B의 요소이다.
따라서 함수는 [[6, 8], [10, 12]]를 결과로 반환
'파이썬_알고리즘(코딩테스트) > level1' 카테고리의 다른 글
| level1_최대공약수와 최소공배수 (1) | 2024.02.19 |
|---|---|
| level1_직사각형 별찍기 (0) | 2024.02.06 |
| level1_문자열 다루기 기본 (0) | 2024.02.04 |
| level1_부족한 금액 계산하기 (0) | 2024.02.03 |
| level1_문자열 내림차순으로 배치하기 (0) | 2024.02.01 |