[백준] 2738: 행렬 덧셈 - 파이썬[python]

다인·2024년 8월 11일

백준

목록 보기
27/112
post-thumbnail

나는 두 행렬을 더한 값을 행렬에 저장한 후 출력하는 방식으로 풀었다. 이것이 2번의 방식이다. 다른 풀이를 보니 굳이 더하지 않고 같은 리스트에 저장한 다음 더해서 출력했다. 나는 전자가 더 성능이 좋을 것이라고 생각하고 풀었는데 후자가 훠얼씬 좋다!

1. 더한 행렬을 저장

N, M = map(int, input().split())
lst = []

for _ in range(2):
    for i in range(N):
        lst.append(list(map(int, input().split())))

for i in range(N):
    for j in range(M):
        print(lst[i][j] + lst[i+N][j], end=' ')
    print()

처음에 첫번째 for문에서 N이 아닌 M을 써서 EOFError가 발생했었다. 조심하자!

2. 각자 저장 후 더함

N, M = map(int, input().split())
lst = []

for i in range(N):
    lst.append(list(map(int, input().split())))

for i in range(N):
    second_lst = list(map(int, input().split()))
    for j in range(M):
        lst[i][j] += second_lst[j]

for row in lst:
    print(*row)

결과

시간 차이가 꽤 마니 난당...! 더하는 것까진 똑같이 접근하지만, 1번은 더함과 동시에 출력을 해서 더 이상의 접근이 없지만 2번은 출력을 위해 또 접근해서 그런 것 같다!

0개의 댓글