sys로 입력 빠르게 받기

ZEDY·2024년 3월 27일
0
import sys

one = sys.stdin.readline().rstrip()

lines = sys.stdin.readlines()

for line in lines:
	print(line.rstrip())

한 줄 입력 받기

sys.stdin.readline()은 표준 입력(stdin)에서 한 줄을 읽어오는 함수입니다. 이 함수를 사용하려면 sys 모듈을 먼저 임포트해야 합니다.

여기서 sys는 파이썬의 내장 모듈 중 하나로, 시스템과 관련된 파이썬 인터프리터의 기능에 접근할 수 있게 해줍니다.

sys.stdin.readline()은 한 줄을 읽어들이는 함수이므로, 입력을 받을 때 한 줄씩 받아오게 됩니다. 이를 통해 여러 줄로 이루어진 입력을 처리할 수 있습니다.

하지만 input() 함수를 사용하는 것과 비교해서 sys.stdin.readline()을 사용하는 이유는 입력 속도 때문입니다. input() 함수는 파이썬 코드를 실행하는 동안 사용자로부터 입력을 받는데, 이때 입력이 많아지면 처리 속도가 떨어질 수 있습니다. 그에 비해 sys.stdin.readline()은 훨씬 빠르게 입력을 받아들일 수 있습니다.

따라서 알고리즘 문제를 푸는 등의 상황에서는 보통 sys.stdin.readline()을 사용하여 입력을 받습니다. 이렇게 함으로써 시간 제한에 걸릴 확률을 낮출 수 있습니다.

그러나 sys.stdin.readline()을 사용할 때 주의할 점은, 개행 문자('\n')까지 함께 읽어들이기 때문에 이를 제거해주어야 합니다. 따라서 보통 아래와 같이 사용합니다.

import sys

input_value = sys.stdin.readline().rstrip()  # 개행 문자('\n') 제거

여기서 rstrip()은 오른쪽 끝에 있는 공백 문자를 제거해줍니다. 이렇게 함으로써 입력 값을 정제할 수 있습니다.

여러 줄 입력 받기

네, sys.stdin.readline() 이외에도 sys.stdin을 통해 입력을 받는 다른 방법이 있습니다. 가장 흔히 사용되는 방법 중 하나는 sys.stdin.readlines()를 사용하는 것입니다.

sys.stdin.readlines() 함수는 표준 입력에서 여러 줄을 읽어들여 각 줄을 리스트의 원소로 반환합니다. 따라서 입력이 여러 줄로 이루어진 경우에 유용하게 사용될 수 있습니다. 이 함수를 사용하면 입력을 리스트 형태로 한 번에 받아올 수 있습니다.

예를 들어, 다음과 같이 사용할 수 있습니다.

import sys

lines = sys.stdin.readlines()
for line in lines:
    print(line.rstrip())  # 각 줄의 개행 문자('\n') 제거하여 출력

이렇게 하면 표준 입력에서 여러 줄을 한꺼번에 읽어와 각 줄을 리스트에 담게 됩니다. 그 후에는 반복문을 통해 리스트의 각 원소를 순회하면서 처리할 수 있습니다.

이 방법은 입력이 여러 줄로 이루어진 경우에 유용하지만, 입력이 한 줄로 이루어진 경우에는 sys.stdin.readline()을 사용하는 것이 더 편리할 수 있습니다.

profile
Spring Boot 백엔드 주니어 개발자

0개의 댓글