파이썬 입력함수 비교

정리 이유

백준 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
    3
    num = sys.stdin.readline(2)
    # 입력 : abcdef
    # print(num) 결과 : ab

결론

알고리즘 최적화를 위해서 input() 대신 sys.stdin.readline()을 사용하는 것이 좋다.