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()
을 사용하는 것이 더 편리할 수 있습니다.