백준에서 문제를 풀면 여러 줄의 패턴을 input 함수로 입력 받을 때가 많습니다.
하지만 input 함수보다 sys.stdin 을 사용하는 것이 더 빠릅니다.
input 함수의 동작
input은 입력만 받는 것이 아닙니다. 출력도 할 수 있고 문자열 마지막의 개행문자(\n)도 제거해서 반환합니다.
input('input here! : ')
# input here! : hello world\n
'hello world'
sys.stdin.readline 함수의 동작
반면 sys.stdin.readline의 경우 그저 입력을 받을 뿐입니다. 따라서 input 함수보다 빠릅니다.
import sys
sys.stdin.readline()
# hello world\n
'hello world\n'
sys.stdin 활용하기
다음과 같이 데이터의 개수 N 과 데이터 A, B를 입력받는 예제를 구현해 보겠습니다.
4
8 26
7 10
12 16
8 14
먼저 단순히 sys.stdin.readline을 활용한 구현입니다.
import sys
N = int(sys.stdin.readline())
for _ in range(N):
line = sys.stdin.readline()
A, B = line.split()
for 루프 안에 함수를 넣으면 더욱 간결하게 구현할 수 있습니다.
import sys
input()
for line in sys.stdin:
A, B = line.split()
split() 함수는 자동적으로 개행문자(\n)를 제거하기 때문에 sys.stdin과 활용하기 좋습니다.
'A B\n'.split() == ['A', 'B'] # True
'A B\n'.split(' ') == ['A', 'B\n'] # True
'PS > python 잡기술' 카테고리의 다른 글
원하는 Bit 만큼 N진수 만들기 (0) | 2022.03.07 |
---|