[Python][백준 2738] 행렬 덧셈
카테고리: Python Coding Test
태그: 2차원 리스트 coding test sys.stdin.readline 백준 2738 백준 행렬 python
📊 행렬 덧셈 문제 풀이
백준 2738번 행렬 덧셈 문제의 파이썬 풀이
📝 문제 설명
N×M크기의 두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성하시오.
💡 풀이
이 문제는 2차원 리스트(행렬)를 다루는 문제이다. 두 행렬의 같은 위치에 있는 원소들을 더하면 된다. 입출력이 많으므로 sys.stdin.readline()
을 사용하여 입력 속도를 개선했다.
🔍 코드 설명
- 행렬의 크기 N, M을 입력받는다.
- 첫 번째 행렬 A를 입력받아 2차원 리스트로 저장한다.
- 두 번째 행렬 B를 입력받으면서 동시에 행렬 A에 더한다.
- 결과 행렬을 출력한다.
✨ 참고
- 2차원 리스트는 리스트 안에 리스트가 있는 구조이다.
sys.stdout.write()
는print()
보다 빠른 출력 방식이다.join()
을 사용하여 리스트의 원소들을 문자열로 변환하고 연결할 수 있다.
📝 코드
import sys
n, m = map(int, sys.stdin.readline().split())
matrix_a = []
for _ in range(n):
row = list(map(int, sys.stdin.readline().split()))
matrix_a.append(row)
for i in range(n):
row_b = list(map(int, sys.stdin.readline().split()))
for j in range(m):
matrix_a[i][j] += row_b[j]
for row in matrix_a:
sys.stdout.write(" ".join(map(str, row)) + "\n")