728x90
보통 input()으로 문자열 값을 입력받지만 반복문으로 여러 줄을 입력받아야 할 때는 시간 초과 문제가 발생할 수 있다고 한다. 특히 스택 / 큐 관련 문제에서는 이렇게 여러 줄을 입력받아야 하는 경우가 많아서 시간 초과의 압박이 크다.
따라서 이럴 경우에는 import sys로 모듈을 불러오고 sys.stdin.readline()을 사용하는 것이 좋다.
readline()은 한 줄 단위로 입력받기 때문에 개행문자가 같이 받아지므로 주의하고, 정수로 사용할 경우 int()로 덮어줘야 한다.
input()은 값의 개행문자를 삭제시켜서 리턴한다.
# 한 개의 정수를 입력받을 때
N = int(sys.stdin.readline())
리스트와 같이 여러 개의 값을 입력받아야 할 경우에는 개행문자의 특징을 이용하여 split() 함수로 공백을 기준으로 값을 나누는 것이 좋다.
# 여러 개의 정수를 한 줄에 입력받을 때
N_list = list(map(int, sys.stdin.readline().split()))
이 문제를 백준 스택2 문제에서 연습해보았다.
https://www.acmicpc.net/problem/28278
곧 스택 2도 답안 올릴 예정
*개행문자 뜻 : https://ko.wikipedia.org/wiki/%EC%83%88%EC%A4%84_%EB%AC%B8%EC%9E%90
'언어 > Python' 카테고리의 다른 글
generator, yield (1) | 2023.12.04 |
---|---|
VSCode에서 나타나는 File "<stdin>", line 1 에러 (0) | 2023.10.02 |
pip/conda 의미, 가상환경의 정확한 의미 (0) | 2023.06.08 |
파이썬 포멧팅 %, {}, f-string (0) | 2023.05.03 |
선발대 심화 3주차(재귀함수, class 심화) (0) | 2023.04.27 |