오늘은 알고리즘이 아니라 함수를 설명할 것이다. 백준에서 가장 간단한 입출력 문제들을 푸는데 계속 시간초과 오류가 떴었다. 다른 곳에서는 시간을 줄일 데가 없는데 계속 초과떠서 답답해하면서 검색하던 찰나에 sys함수를 발견했다.
sys는 파이썬의 표준 라이브러리중에 하나이다. 이 라이브러리 안에서 sys.stdin.readline()이라는 함수가 있는데 이 함수가 바로 input()과 동일한 함수이다. 유일한 차이점은 sys.stdin.readline()은 맨뒤에 개행문자가 같이 입력된다는 점이다. 즉 우리가 입력값을 치고 엔터를 누를 때 그 문자도 같이 들어간다. 그것을 제외하고는 input()과 똑같이 단순 입력을 하는데 왜 이 함수를 쓰냐면 시간이 훨씬 빠르다. 또한 메모리도 적게 사용한다. 그래서 단순 숫자등의 입력은 input으로 받아도 무관하지만 반복적으로 무언가를 입력받거나 할 때는 무조건적으로 이 함수가 유리하다. 주의할 점은 위에서도 말했듯이 sys라이브러리에 있는 함수이므로 코드 맨 윗줄에 import sys를 반드시 해주고 함수를 사용해야 한다. 백준에도 나머진 다 똑같아도 이 입력때문에 실패 뜨는 경우가 종종있기 때문에 다 맞았는데 안된다 하는 사람들은 한번씩 바꿔보고 이 함수에 적응하는걸 추천한다.
728x90
반응형
'코딩테스트 > 파이썬 알고리즘' 카테고리의 다른 글
Algorithms-[Euclidean algorithm & The Sieve of Eratosthenes ] (0) | 2021.12.01 |
---|---|
Functions-[collections-(counter & most_common())] (0) | 2021.11.28 |
Algorithms-[DFS] (0) | 2021.11.26 |
Algorithms-[Greedy] (백준 #11047 [동전0]) (0) | 2021.11.21 |
Algorithms-[Brute Force] (0) | 2021.11.19 |