본문 바로가기
python

[python] 반복적인 입력에는 input() 대신 sys.stdin.readline 로 변경

by hs_seo 2018. 6. 18.

파이썬에서 데이터를 입력받을 때 input()을 이용한다. 


input()을 이용하면 프롬프트를 이용한 입력을 받을 수 있고, 형변환이 되는 이점이 있다. 

하지만 대량의 데이터를 반복적으로 입력받을 때 input()을 이용하지 않고, sys.stdin.readline() 을 이용하면 성능이 향상된다. 


백준 1931 문제를 같은 코드로 입력 함수만 다르게 사용한 결과 아래와 같이 10배의 속도 향상(3928MS -> 336MS)을 얻을 수 있었다. 


8954131

h

1931맞았습니다!!50344 KB336 MSPython 3 수정491 B41분 전
8953912

h

1931맞았습니다!!50344 KB3928 MSPython 3 수정508 B1시간 전

자바에서 Scanner를 이용한 입력보다 BufferedReader 를 이용한 입력이 빠른것처럼 

파이썬도 input()을 이용하는 것보다 sys.stdin.readline()을 이용하는 것이 훨씬 빠르다. 



반응형