-
input() 메소드 시간초과Python 2020. 7. 19. 02:57
알고리즘 문제를 풀어냈지만.. 자꾸만 시간초과가 뜬다.
내 코드의 문제점은 입력을 받을 때, input() 으로 받는다는 것이었다.
입출력 속도: sys.stdin.readline() > raw_input() > input()
파이썬은 동적변수인데, 변수의 형태로 저장하기 위해 input() 메소드 내에서 가공을 하게 된다.
raw_input()은 문자열 반환. input()은 raw_input()을 evaluate한 결과 반환.
하지만, sys.stdin.readline()은 한 줄의 문자열을 반환하는데 int()로 묶어서 정수로 변환하여 더 빠르다.# 1만번의 루프를 돌면서 입력받는다. for i in range(10000): n = int(input()) # 문자열을 버퍼에 저장한 후, 한번에 int()로 변환하며 입력받는다. for i in range(10000): n = int(sys.stdin.readline())
** 숫자를 입력받을때 앞으로 이렇게 입력받도록 한다.
N = int(sys.stdin.readline().strip()) a, b = map(int, sys.stdin.readline().split())
https://www.acmicpc.net/blog/view/56
입력 속도 비교
여러가지 언어와 입력 방법을 이용해서 시간이 얼마나 걸리는지 비교해 보았습니다. 방법: 첫째 줄에 정수의 개수 N (= 10,000,000), 둘째 줄부터 N개의 줄에 한 개의 자연수(10,000 이하)가 적힌 파일��
www.acmicpc.net
'Python' 카테고리의 다른 글
백준 알고리즘: 2217 로프 (0) 2020.07.19