우노
[Python] 파이썬 빠르게 입력 받기 (sys.stdin.readline) 본문
들어가기 앞서,
- 입력 데이터의 개수가 많은 문제를 풀 때, input() 함수를 사용하면, 동작 속도가 느려서 시간 초과로 인한 오답 판정을 받을 수 있습니다.
- 따라서, 입력 데이터가 많은 문제에는, sys 라이브러리의 readline() 함수를 이용해 시간 초과를 피할 수 있습니다.
- sys 라이브러리를 사용할 때는, 한 줄을 입력 받고 나서, 반드시 rstrip() 함수를 호출해야합니다.
- sys.stdin.readline() 으로 입력을 받으면, 입력 후 엔터가 줄 바꿈 기호로 입력되는데,
- 이 공백 문자를 제거하려면 rstrip() 함수를 사용해야합니다.
예제 코드
한 개의 정수 입력 받기
import sys a = int(sys.stdin.readline().rstrip())
공백 기준으로 분리된 여러 정수 입력 받기
import sys a, b, c = map(int, sys.stdin.readline().rstrip().split())
공백 기준으로 분리된 여러 정수를 입력 받아, 리스트에 저장하기
import sys data = list(map(int, sys.stdin.readline().rstrip().split())) # [1, 2, 3]
공백 기준으로 분리된 여러 정수를 n번 입력 받아, 2차원 리스트에 저장하기
import sys n = int(sys.stdin.readline().rstrip()) data = [list(map(int, sys.stdin.readline().rstrip().split())) for _ in range(n)] # [[1, 2, 3], [4, 5, 6]]
추가
- Jupyter 에서는 stdin 이 제대로 구성되어 있지 않기 때문에,
- sys.stdin.readline() 을 실행하면 입력을 받지 못하고 항상 빈 문자열이 반환됩니다.
- 따라서, Jupyter 에서는 sys.stdin.readline() 대신에 input() 을 사용해야 합니다.
참고
- 이것이 취업을 위한 코딩 테스트다. with python
- https://velog.io/@yeseolee/Python-파이썬-입력-정리sys.stdin.readline
'Language > Python' 카테고리의 다른 글
[Python] 우선순위큐(heapq) 사용법 (0) | 2022.07.02 |
---|---|
[Python] Numpy 평균, 표준편차, 분산 계산 (0) | 2022.07.02 |
[Python] Dictionary Key, Value 정렬 (0) | 2022.06.07 |
[Python] Lambda 를 사용한 다중 조건 정렬 (0) | 2022.06.07 |
[Python] 문자열을 문자로 분리하여 리스트로 저장 (0) | 2022.06.05 |
Comments