백준 2738번 문제
행렬 덧셈
문제

풀이
1.
이 문제는 2차원 배열의 문제이다.
즉 2차원 배열 끼리의 덧셈으로 풀어야 하는 것이다.
자 결과는 2차원 배열 끼리의 덧셈으로 정해져 있으니, 각각 첫인풋의 값을 받아서 어떻게 2차원 으로 나눌 것 인지부터 정하면 된다.
2차원 배열을 선언 하는 경우에는 for문 2개를 이용해서 첫번째 for문에는 []를 선언하고 그 안에 들어갈 갯수를 정하면 된다.
즉 첫번째 for 문에서는 N을 두번째 for문에서는 M을 정하는 방법이다.
하지만 이처럼 인풋을 받아오는 경우에는 방법이 조금 다르다.
이전과 같이 라인자체를 리스트로 가져와서 할당을 해주면 된다. 이때, 인풋값을 숫자로 계산을 해야하니, map과 int를 사용해줘야한다.
즉 N만큼의 반복이 첫번째 for문, list로 받아오는 것이 두번째 for문으로 생각하면 될 것 같다.
(엄밀히 따지면 다르긴 하나..)
그렇게 각각의 array를 할당하면, 2차원 배열끼리의 덧셈을 진행해야하는데, 이는
일반적인 SUM이 아닌 array[0][0] + array2[0][0]이렇게 좌표를 지정해 줘야한다.
이는 인덱스와 같으므로 최종은 N-1 x M-1이 될 것이다.
그 후, 이를 array로 출력을 하는 것이 아닌 숫자만 출력을 해야함으로 print(*sum_array)가 되지 않을가 싶다.
2.
print부분 제외하고는 맞는거 같다.
sum_arrary가 모든 값을 2차원으로 저장하기 보다, [i]마다 출력을 하는게 맞는거 같다.
굳이 2차원 배열로 저장하는 하는 것 보다, 한줄씩 프린트 하는것이 맞는거 같다.
결과
import sys
N, M = map(int,sys.stdin.readline().strip().split())
array_1 = []
array_2 = []
for _ in range(N):
array_1.append(list(map(int,sys.stdin.readline().strip().split())))
for _ in range(N):
array_2.append(list(map(int,sys.stdin.readline().strip().split())))
for i in range(N):
array_sum = []
for j in range(M):
array_sum.append(array_1[i][j] + array_2[i][j])
print(*array_sum)
Coding_Test/백준/Bronze/2738. 행렬 덧셈 at main · K-MarkLee/Coding_Test
Coding_Test/백준/Bronze/2738. 행렬 덧셈 at main · K-MarkLee/Coding_Test
This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - K-MarkLee/Coding_Test
github.com
'코딩테스트 > BaekJoon' 카테고리의 다른 글
| 백준 파이썬 코딩테스트 (세로읽기) (4) | 2025.08.09 |
|---|---|
| 백준 파이썬 코딩테스트 (최댓값) (1) | 2025.08.08 |
| 백준 파이썬 코딩테스트 (너의 평점은) (2) | 2025.08.06 |
| 백준 파이썬 코딩테스트 (그룹 단어 체커) (1) | 2025.08.05 |
| 백준 파이썬 코딩테스트 (크로아티아 알파벳) (1) | 2025.08.04 |