[Python][백준 15552] 빠른 A+B
카테고리: Python Coding Test
태그: coding test PyPy3 sys.stdin.readline 백준 15552 백준 최적화 python
⚡ 빠른 A+B 문제 풀이
백준 15552번 빠른 A+B 문제의 파이썬 풀이
📝 문제 설명
본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.
Python에서는 input
대신 sys.stdin.readline
을 사용해야한다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .strip()
을 추가로 해 주는 것이 좋다.
💡 풀이
이 문제는 입출력 최적화가 핵심이다. Python의 기본 input()
함수 대신 sys.stdin.readline()
을 사용하여 입력 속도를 크게 향상시킬 수 있다.
🔍 코드 설명
sys
모듈을 import한다.- 테스트 케이스의 개수 t를 입력받는다.
- t번 반복하면서:
- 두 정수 A와 B를 입력받는다.
- A + B의 결과를 출력한다.
✨ 참고
sys.stdin.readline()
은input()
보다 훨씬 빠른 입력 방식이다..strip()
은 문자열 양끝의 공백과 개행문자를 제거한다.- 많은 양의 입출력이 필요한 문제에서는 이 방식을 사용하는 것이 좋다.
- 백준에서는 제출 시 PyPy3를 사용하면 문제를 더 빨리 풀 수 있다. 물론 Python3도 가능하다. C++이 더 빠르다.
📝 코드
import sys
t = int(sys.stdin.readline().strip())
for _ in range(t):
a, b = map(int, sys.stdin.readline().strip().split())
print(a + b)
import sys
t = int(sys.stdin.readline().strip())
results = []
for _ in range(t):
a, b = map(int, sys.stdin.readline().split())
results.append(a + b)
sys.stdout.write('\n'.join(map(str, results)))