파이썬 입력함수 비교
정리 이유
백준 11723번 집합을 풀 때, 파이썬 입력함수에 따라 시간 초과가 나고 안 나고가 결정될 만큼 시간 차이가 있어 각 입력함수별 차이를 익히기 위해 정리해둔다.
input()
- 문자열로 입력받는다.
- list(map(int, input().split(‘ ‘)))을 이용해 공백으로 나누어 받을 수 있다.
sys.stdin.readline()
- import sys 를 해주어야 한다.
- 문자열로 입력받는다.
- readline()은 문자열 마지막에 개행문자(줄바꿈 문자\n)을 포함하고 있음을 주의하자.
- sys.stdin.readline()**.rstrip()**으로 오른쪽 공백을 삭제할 수 있다.
- sys.stdin.readline()**.lstrip()**으로 왼쪽 공백을 삭제할 수 있다.
- sys.stdin.readline()**.strip()**으로 오른쪽, 왼쪽 공백을 삭제할 수 있다.
- (이 때 공백에는 개행문자, 스페이스 바 등이 해당된다.)
- list(map(int, stdin.readline().split(‘ ‘)))을 이용해 공백으로 나누어 받을 수 있다.
sys.stdin.readline(인수)
- 인수에는 한번에 읽어들일 문자의 수를 넣어준다.
- 그럼 그 숫자만큼의 길이만 읽어들인다.
1
2
3num = sys.stdin.readline(2)
# 입력 : abcdef
# print(num) 결과 : ab
결론
알고리즘 최적화를 위해서 input() 대신 sys.stdin.readline()을 사용하는 것이 좋다.