[파이썬]sys.stdin.readline()과 input()

쟈니·2023년 5월 9일
0

파이썬

목록 보기
1/1

❔ input()말고 sys.stdin.readline()?

파이썬으로 코딩테스트를 하면서 값을 입력 받을 때 보통 input()를 사용합니다.
하지만 input()으로 인한 시간 초과 에러가 발생하는데요.
바로 반목문 등으로 여러 줄을 입력 받을 때 입니다.
입력을 1~2줄 받을 때는 input()을, 여러 줄**을 받을 때는 sys.stdin.readline()을 사용합니다.

✔sys.stdin.readline() 사용법

🔎 한 개의 정수를 입력 받는 경우

import sys
a = int(sys.stdin.readline())

sys.stdin.readline()은 문자열로 저장되기 때문에 int로 형변환 필요!

🔎 정해진 개수의 정수를 한줄에 입력 받는 경우

import sys
a, b, c = map(int, sys.stdin.readline().split())

map()로 a,b,c에 대해 각각 int로 형변환!
split로 문자열 나누기!(공백 또는 특정 값 기준)

🔎 임의의 개수의 정수를 한 줄에 입력 받는 경우_list.Ver

import sys
data = list(map(int, sys.stdin.readline().split()))

map() 객체를 list()로 변환!

🔎 임의의 개수의 정수를 한 줄에 입력 받는 경우_list_of_2D.Ver

data = []
n = int(sys.stdin.readline())
for i in range(n):
    data.append(list(map(int,sys.stdin.readline().split())))

list인 data에 입력받은 정수 n개의 list 를 입력(각 요소의 길이가 동일한 2차원 리스트 생성)

🔎 문자열 n줄 입력받아 리스트에 저장하는 경우

import sys
n = int(sys.stdin.readline())
data = [sys.stdin.readline().strip() for i in range(n)]

strip(): 문자열 맨 앞/뒤 공백 문자 제거 함수
❕ n개 크기의 리스트에 앞뒤 공백 제거한 문자열 저장

출처 : [Python 문법] 파이썬 입력 받기(sys.stdin.readline)

profile
시작은 미미하나 끝은 쥬쥬하다.

0개의 댓글