평소 백준문제풀이를하며 input()은 느린거 readline()은 빠른거 정도로만 알고 있었다.
하지만 [백준 4949 균형잡힌세상] 을 풀며 둘의 차이점을 찾았다.
문제에서 ' . ' (마침표)가 입력되면 입력을 종료하는 조건이있다
while True:
sentence = sys.stdin.readline() # input() 을 사용하면 정상종료된다
if sentence == ".":
break
이렇게 코드를 작성하고나서 테스트해보니 마지막 마침표를 제대로 읽지못해서 코드가 끝나지않았다
input() 사용시 정상종료 되었고, 이유를 알기위해 차이점을 검색했다.
차이점은 readline()는 값을 입력하고 엔터를 입력할때 줄바꿈 신호(\n)까지 같이 포함되어 저장된다는 점이었다
\n 을 없애기위해 사용하는것이 strip() 함수였고 간단한 코드로 확인해보았다
import sys
# 똑같이 . (dot) 을 입력한다
input_v = input()
readline_v = sys.stdin.readline()
strip_v = sys.stdin.readline().strip()
print(input_v == '.', readline_v== '.', strip_v =='.')
# True, False, True
이번 문제는 input() 을 사용하여 문제를 해결했다.
