알고리즘 문제를 풀 때, input()
을 사용해 입력을 받으면 시간 초과가 날 때가 있다. 이때, input()
대신에 sys.stdin.readline()
을 사용하면 더욱 빠른 속도로 입력을 받을 수 있다.
import sys
msg = sys.stdin.readline()
print(message)
sys.stdin.readline()
은 기본 return값이 문자열이다.
또한, 아래의 출력 결과를 확인해보면 개행문자(\n)를 포함하고 있다는 것을 알 수 있다.
import sys
num = int(sys.stdin.readline())
sys.stdin.readline()
은 기본 return값이 문자열이기 때문에 int로 형변환을 시켜주어야 한다.
input()
이 sys.stdin.readline()
보다 느린 이유
- input은
input("문자를 입력하세요: ")
처럼 prompt message를 인자로 받을 수 있기 때문에, 이 prompt message를 출력한 후에 입력을 받는다.- 받은 입력값에서 개행 문자(\n)를 제거한 후에 리턴한다.
이와 달리 sys.stdin.readline()
은 prompt message를 인자로 받지 않고, 개행 문자 또한 포함해서 리턴하기 때문에 input()
보다 속도가 빠르다.