코딩테스트를 위한 입력방법

iamjinseo·2022년 7월 6일
0

문제풀이-Python

목록 보기
1/134
post-thumbnail

문자열, 정수, 여러 정수 입력

#문자열 입력
str = input()
# 정수 하나 입력
N = int(input())
# 공백으로 분리된 여러 정수 입력
nums = list(map(int, input().split)) # 1 2 3 4 5

빠른 입력방법 - sys.stdin.readline()

# 빠른 입력방법
import sys
N = int(sys.stdin.readline().rstrip())

한 줄에 여러 입력 값을 받을 수 있다.
readline()은 문자열 마지막에 개행문자가 포함되어, 한 줄 띄어 출력된다.
rstrip은 입력된 값을 출력할 때 공백이 나오지 않도록 삭제해 주는 함수이다. (굳이 안 해도 됨)

빠른 입력으로 여러 값을 입력할 수도 있다.

#여러 정수 입력받기
nums = list(map(int, sys.stdin.readline().split()))

#문자열들을 입력해서 리스트로 만들기
a = [sys.stdin.readline() for i in range(n)]  

왜 input이 더 느린가?

input의 생애주기는 다음과 같다.
파라미터로 프롬프트 메세지 받아 입력 받기 전에 프롬프트 메세지 출력 - 입력받을 때 마다 데이터 하나하나가 정성스럽게 버퍼에 저장됨 - 엔터 누르고 입력받은 값에서 \n 없애기 - 문자열로 변경하기 - 반환

그러나 stdin.readline()에서는 프롬프트 메세지도 출력 안하고 버퍼를 한 번에 저장하기 때문에 속도가 빠르다.


입력 크기가 커질수록 속도가 더 빨라지겠구나.


sys는 뭐지?

System-specific parameters and functions

파이썬 인터프리터가 제공하는 변수와 함수를 제어할 수 있게 해준다.

profile
일단 뭐라도 해보는 중

0개의 댓글