반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
12-28 01:23
관리 메뉴

ImJay

[파이썬/Python] 백준 2738번 행렬 덧셈 본문

Solved.ac - Python/Bronze V

[파이썬/Python] 백준 2738번 행렬 덧셈

ImJay 2022. 7. 14. 16:15
반응형

[파이썬/Python] 백준 2738번 행렬 덧셈

www.acmicpc.net/problem/2738

 

2738번: 행렬 덧셈

첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같

www.acmicpc.net


문제

N*M크기의 두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성하시오.

코드

A, B = [], []

N, M = map(int, input().split())

for row in range(N):
    row = list(map(int, input().split()))
    A.append(row)

for row in range(N):
    row = list(map(int, input().split()))
    B.append(row)
    
for row in range(N):
    for col in range(M):
        print(A[row][col] + B[row][col], end=' ')
    print()

풀이

1. 행렬을 받을 리스트 A, B 를 선언한다.

A, B = [], []

 

2. N, M 을 통해 행렬의 크기를 입력 받는다.

N, M = map(int, input().split())

 

3. A, B 에 행렬의 원소를 입력 받는다.

for row in range(N):
    row = list(map(int, input().split()))
    A.append(row)

for row in range(N):
    row = list(map(int, input().split()))
    B.append(row)
  • 입력의 조건 중 한 행씩 입력을 받으므로, 행의 크기만큼 입력을 반복하여 받는다.
  • map 함수는 맵 객체(map object)를 반환하므로, row에는 list 형태로 받아주어야 한다. 맵 객체는 이터레이터이기 때문에 다대다 관계에서는 list가 생략이 가능하지만, 일대다 관계에서 map 함수는 list 를 통해 값을 확인할 수 있다.
  • 입력 받은 행을 행렬에 삽입한다. 이 과정을 반복하여 행렬 A, B 를 완성시킨다.

 

4. 행렬 A, B 를 더한 행렬을 출력한다.

for row in range(N):
    for col in range(M):
        print(A[row][col] + B[row][col], end=' ')
    print()
  • 반복문을 통해 행렬 A, B 의 동일 행, 동일 열에 위치한 원소를 더한 값을 출력하고, end = ' ' 를 통해 띄어쓰기로 열을 구분하여 출력한다.
  • 하나의 열을 출력한다음, 다음 행으로 넘어가기 전에 print() 를 통해 줄바꿈을 해주어 행을 구분한다.

 

느낀 점

행렬의 개념에 대해 다시 한번 배우게 되었다.

나는 매번 행과 열이 왜이리 헷갈리는지 모르겠다.

코드 작성 중 M 과 N 을 반대로 적어 EOF 로 한참동안 헤맸다.

이 문제에서 내가 제일 확실하게 기억해야되는건 행(N) 렬(M) 이라는 사실이다.

map 함수의 작동원리에 대해서도 계속해서 복습해야될 것 같다.

 

참고자료

https://dojang.io/mod/page/view.php?id=2286 

 

파이썬 코딩 도장: 22.6 리스트에 map 사용하기

이번에는 리스트에 map을 사용해보겠습니다. map은 리스트의 요소를 지정된 함수로 처리해주는 함수입니다(map은 원본 리스트를 변경하지 않고 새 리스트를 생성합니다). list(map(함수, 리스트)) tupl

dojang.io

 

반응형
Comments