bass

백준에서 문제를 풀면 여러 줄의 패턴을 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
profile

bass

@bassyu

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!