Python을 사용하여 알고리즘 문제를 풀 때, 입력을 받는 방법은 성능에 큰 영향을 미칠 수 있습니다. 특히 대량의 데이터를 처리해야 할 때, 기본 input() 함수보다 더 빠른 방법이 필요한데, 그 해결책 중 하나가 바로 sys.stdin.readline입니다. 이번 포스트에서는 이 방법의 장점과 사용법에 대해 알아보겠습니다.
sys.stdin.readline을 사용할까?기본 input() 함수는 사용하기 간편하지만, 내부적으로 여러 가지 처리를 수행하기 때문에 속도가 느릴 수 있습니다. 예를 들어, 줄바꿈을 처리하고 문자열을 다루는 과정에서 오버헤드가 발생합니다. 반면에 sys.stdin.readline은 입력 버퍼에서 직접 한 줄을 읽어오기 때문에 훨씬 빠릅니다. 이 점은 특히 알고리즘 문제에서 시간 제한이 있을 때 매우 중요합니다.
아래는 input()과 sys.stdin.readline의 간단한 성능 비교입니다:
input(): 한 줄을 입력받고 처리하는 과정에서 여러 추가 작업을 수행합니다. 이로 인해 상대적으로 느리게 동작합니다.sys.stdin.readline: 입력 버퍼에서 직접 값을 읽기 때문에, 처리 속도가 빠릅니다. 줄바꿈 문자(\n)도 자동으로 포함되므로, 필요할 경우 이를 제거하는 간단한 작업만 필요합니다.다음은 sys.stdin.readline을 사용하는 예시입니다:
import sys
input = sys.stdin.readline # 더 빠른 입력 방법으로 대체
n, m = map(int, input().split())
for _ in range(m):
a, b = map(int, input().split())
# 처리 로직
다음과 같은 이유로, 코딩테스트를 작성할 때 시간 초과를 극복할 수 있습니다. 기본 default로사용하면 좋을 거 같습니다.