알고리즘

(Python) input() vs sys.stdin.readline()

용꿀 2022. 12. 20. 14:07

백준 문제를 풀 때 Input()을 사용하면 시간 초과가 발생하고, sys.stdin.readline()을 사용하면 시간 안에 채점이 완료되는 경우가 여러 번 있어서 이 둘의 차이를 명확하게 정리하고자 한다.

이 두 함수가 동작하는 모습을 보면 기능은 비슷하다고 생각할 수 있지만, 명확한 차이점이 존재한다.

 

1. input()

파이썬의 내장함수로써, 인수로 prompt message를 받을 수 있다.

 

2. sys.stdin.readline()

sys 모듈의 메소드로써, 인수로 prompt message를 받지 않는다.

 

3. 차이점

(1) 위에서 언급했듯이 input()은 인수로 prompt message를 받고, 이를 출력한다. 반면 sys.stdin.readline()은 아무런 인수를 받지 않기 때문에 어떤 값도 출력하지 않는다.

(2) input()은 입력의 종료를 나타내는 개행문자를 생략하는 과정을 거친다. 반면 sys.stdin.readline()은 개행문자를 포함한 한 줄 전체를 버퍼로 입력받는다.

 

위와 같은 차이 때문에 input()에 비해 sys.stdin.readline()이 빠르다. 특히 입력이 반복되는 경우에는 이 차이가 더 명확해지기 때문에 되도록 문제 풀이 시에는 sys.stdin.readline()을 사용하는 것이 좋겠다.

 

관련 문제 풀이

https://lildev.tistory.com/24

 

(Python) 백준 10989번 - 수 정렬하기 3

문제 링크 : https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자

lildev.tistory.com