호기심 많은 분석가
[Python] 입력 받기 (sys.stdin.readline) 본문
코딩 테스트를 준비하다 보면 input의 경우 런타임 에러가 뜰 때가 있다. 실제로도 이것 때문에 애를 먹었는데, 이 것을 방지해줄 sys 라이브러리의 readline() 문법을 알아보자.
1. 한 개의 정수 입력받기
import sys
a = int(sys.stdin.readline())
sys.stdin.readline()의 경우 한 줄 단위로 입력받기 때문에, 개행 문자가 같이 입력된다. 1을 입력한다면 '1\n'의 형태로 입력되기 때문에, int형으로 변환시켜줘야 함.
2. 임의의 개수의 정수를 한 줄에 입력받아 리스트에 저장
import sys
arr = list(map(int, sys.stdin.readline().split()))
input과 사용법이 크게 다르지 않다. split()을 통하여 띄어쓰기로 입력된 정수를 나눠 리스트에 넣어준다.
3. 여러 줄을 입력받아 리스트에 저장할 때
import sys
arr = []
n = int(sys.stdin.readline())
for i in range(n):
arr.append(list(map(int, sys.stdin.readline().split()))
import sys
n = int(sys.stdin.readline())
arr = [sys.stdin.readline().strip() for i in range(n)]
위와 같이 2가지의 방법으로 저장할 수 있다. strip()은 문자열 맨 앞, 뒤 공백을 제거해주는 메서드다.
같은 방식의 코드면서도 시간이 훨씬 빠르므로 input보다는 readline을 생활화하야겠다.
'Coding > Coding Test & Algorithm' 카테고리의 다른 글
[백준 11050] 이항 계수 1 (Python) (0) | 2021.06.02 |
---|---|
[백준 9625] BABBA (Python) (0) | 2021.05.27 |
[백준 10951] A+B - 4 (Python) (0) | 2021.05.25 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] (한빛미디어, 나동빈) Chapter8(2). 다이나믹 프로그래밍 (0) | 2021.05.25 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] (한빛미디어, 나동빈) Chapter8(1). 다이나믹 프로그래밍 (4) | 2021.05.25 |