CODING TEST/백준
백준 알고리즘 | 15552번 (10950번 변형문제) | 파이썬
sustronaut
2021. 7. 2. 08:32
15552번 (10950번 변형문제)
- 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.
- Python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.
import sys
n = int(input())
i = 0
for i in range(0, n):
a, b = sys.stdin.readline().rsplit()
a = int(a)
b = int(b)
print(a+b)
i = i+1
새롭게 배운 것
sys.stdin.readline()
sys.stdin.readline()은 사용자의 입력을 받지만 개행 문자도 입력을 받을 수 있다. 또한 입력 크기에 제한을 줌으로써 한번에 읽어들일 문자의 수를 정할 수 있다.
빠르게 입력받을 수 있다는 장점 (실행속도 우위)
- 특징
input()과 가장 큰 차이점은 input() 은 내장 함수로 취급되는 반면 sys 에 속하는 메소드들은 file object로 취급된다. 즉, 사용자의 입력만을 받는 buffer를 하나 만들어 그 buffer에서 읽어들이는 것이다.
input()은 더 이상 입력이 없는데도 수행될 경우 EOFerror를 뱉어내는 반면 sys.stdin.readline()은 빈 문자열을 반환한다. 에러에 안전하다.
rsplit() 을 이용해서 여러 개의 입력을 받을 수도 있다.