본문 바로가기

코딩테스트

[백준] 2738번: 행렬 덧셈 (브론즈5, Python)

반응형

https://www.acmicpc.net/problem/2738

 

2738번: 행렬 덧셈

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

www.acmicpc.net

 

문제 해결 아이디어

  1. 입력 첫 번째 줄에 배열의 모양이 제시되고, 행*2번 입력값이 들어오는 형태
  2. C언어같이 메모리 관리를 하기 위해서는 array 선언 시 열의 갯수도 지정했겠지만... 그냥 빈 리스트로 선언하였음.
  3. 2*행 번의 for문을 통해 행보다 작으면 1차원 배열을 빈 리스트에 추가하고, 이후부터 첫번째 행부터 차례로 덧셈을 진행하였음.
  4. 답안 출력은 한 행씩 출력

소스 코드 (Python)

def mat_plus(n):
    arr = [] 
    
    for iter in range(2*n):
        tmp = [int(k) for k in input().split()]
        if iter < n:
            arr.append(tmp)
        else:
            for j in range(len(tmp)):
                arr[iter-n][j] += tmp[j]
    
    for row in arr:
        print(*row)
                
if __name__ == '__main__':
    n,m = [int(k) for k in input().split()]
    mat_plus(n)

 

결과

더 잘 풀 방법이 있지 않을까... 아쉬운 문제

제출 결과

 

반응형