728x90
반응형
백준 15552번 문제 풀어보다가 입력 받는 법에 대해서 정리하고 싶어져서 포스팅!
https://www.acmicpc.net/problem/15552
파이썬에서 입력 받을 때 input() 만 써왔었는데
사실 sys.stdin.readline() 도 사용이 가능하다.
(사용하기 위해선 import sys 를 해줘야 한다.)
한 두 줄 입력받는 문제들이랑 달리
반복문으로 여러줄을 입력받아야하는 경우에는 input() 으로 입력 받았다가 시간초과가 생길 수 있다.
사용법을 정리해보자.
정수 1개 입력받는 경우
import sys
a = int(sys.stdin.readline())
왜 int 로 감싸주는 걸까?
그 이유는 개행문자가 같이 입력받아지기 때문이다.
만약에 3을 입력한다면 3\n 이 저장되기 때문에 이 \n 을 제거해주어야 한다.
그래서 정수로 사용하기 위해서는 형변환 해주기 위해서 int 로 한번 감싸주는 과정을 거친다.
여러개(정해진 개수) 정수 한줄에 입력받는 경우
import sys
a, b, c = map(int, sys.stdin.readline().split())
여러개(정해지지 않은 개수)의 정수를 한줄에 입력받아 리스트에 저장하는 경우
import sys
data = list(map(int, sys.stdin.readline().split()))
n 줄의 문자열을 입력받아 리스트에 저장하는 경우
import sys
n = int(sys.stdin.readline())
data = [sys.stdin.readline().strip() for i in range(n)]
strip() 은 무엇을 의미할까?
strip 은 문자열의 맨 앞과 맨 끝에 있는 공백문자를 제거한다.
간단하게 몇 가지 경우에 대해서만 정리해봤다.
개인적으로 sys.stdin.readline() 을 사용해서 입력을 받을 일이 있으면 너무 기니까
import sys
input = sys.stdin.readline
n = int(input())
for i in range(n):
a, b = map(int, input().split())
print(a+b)
이런 식으로 input에 먼저 sys.stdin.readline을 담아놓고 시작할 것 같다.
이 방식은 다음 링크에서 참고했다.
https://www.acmicpc.net/board/view/22716
728x90
반응형