[백준] sys.stdin.readline()

^_^·2022년 5월 31일
0

Python

목록 보기
3/9
post-thumbnail

백준 문제를 풀다 처음 보는 입력방법이 있어 정리한다.
input()함수를 통해 입력을 받아오다 시간 초과 문제로 sys.stdin.readline()입력방법을 사용해야 했다.
sys.stdin.readline()로 입력을 받는 방법은 파이썬 표준 라이브러리인 sys 모듈을 import해 사용하고 input()함수보다 속도가 빠르다.
그 이유는

1) propmt의 출력여부
2) sys.stdin.readline()은 한 번에 읽어서 버퍼에 저장하고, input()은 값을 입력할 때마다 버퍼에 저장하는 데서 오는 속도 차이 때문이라고 한다.

input과 sys.stdin.readline()의 차이

아래 코드 출력결과를 확인해 보면 sys.stdin.readline()의 경우 개행 문자가 입력 끝에 포함되어 있다.


import sys
a = sys.stdin.readline()
b = input()
print(a)
print(b)

# 출력
Hello world!

Hello World!

개행 문자를 사용하지 않으려면 sys.stdin.readline().strip을 사용하면 된다.

정수형 사용시 sys.stdin.readline()사용방법

import sys는 생략하겠다.

한개의 정수를 입력 받을 때 : a = int(sys.stdin.readline())

정해진 개수의 정수를 한줄에 입력받을 때 : a,b,c = map(int,sys.stdin.readline().split())

0개의 댓글