Python sys.stdin.readline 사용 이유

정기홍·2024년 11월 29일
0

코딩테스트_파이썬

목록 보기
19/49

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로사용하면 좋을 거 같습니다.

profile
하나를 알고 그걸로 모든걸 관통한다.

0개의 댓글