자기계발
백준
15552 · 빠른 A+B

백준 15552번 빠른 A+B

문제

테스트 케이스 수 T(최대 1,000,000)가 주어지고, 이어서 T줄에 걸쳐 두 정수 A와 B가 주어진다(1 이상 1,000 이하). 각 케이스마다 A+B를 한 줄에 하나씩 출력한다. 입출력이 많아서 느린 입력 방식을 쓰면 시간 초과가 난다.

풀이

sys 모듈을 불러와 input() 대신 sys.stdin.readline()으로 한 줄씩 읽는다. 이 방식은 줄 끝의 개행 문자까지 함께 읽어 오므로 rstrip()으로 지운 뒤 split()으로 나눈다. 앞 문제에서 쓰던 map(int, ...) 식에 sys.stdin.readline()만 바꿔 끼웠다.

import sys
 
T = int(input())
 
for _ in range(T):
        a,b = map(int, sys.stdin.readline().rstrip().split())
        print(a + b)

제출은 통과했다. 다만 Jupyter에서는 같은 코드가 계속 오류가 나서 한 시간 넘게 원인을 찾지 못했다. Jupyter의 입력 방식이 일반 터미널과 달라서 sys.stdin.readline()이 기대대로 동작하지 않는 것으로 보이며, 원인은 확인하지 못했다.

짚고 갈 점

  • 여기서는 split()이 개행 문자도 공백으로 취급해 지워 주기 때문에 rstrip()이 없어도 결과는 같다. 문자열을 그대로 저장할 때 rstrip()이 필요하다.
  • 반복문 안에서 쓰지 않는 변수는 관례적으로 _로 쓴다.

출처