chronine   4년 전

문제 입력받는것부터 막혔네요..

10만개를 한줄에 입력을 받아야 되는데, input() 함수를 쓰면 한번에 16KB씩 밖에 입력이 안받아지네요.
sys.stdin.read는 4KB씩밖에 안되구..
어떻게 입력을 받아야 될까요?

파이썬을 잘 모르기에.. 구글링도 해봤는데 해답을 못찾겠네요.
해보다 안되서 그냥 C로 풀었는데
조언 부탁드립니다

jh05013   4년 전

?? input()으로 잘 받아집니다.

jh05013   4년 전

그리고 입력을 잘 받더라도, 저 코드로는 시간초과가 납니다.

p와 n이 10만까지 가기 때문에 O(pn)으로는 풀 수 없습니다. x.pop(0)은 0번째 원소를 제거하고 나머지 원소를 전부 한 칸씩 옆으로 밀기 때문에 O(n)이 걸리고, x.reverse도 O(n)이 걸립니다. 배열 크기가 작거나 한 두 번밖에 pop을 안 하는 경우가 아니면 pop(0)는 절대로 하면 안 됩니다.

chronine   4년 전

감사합니다.

틀렸다고 나오길래 제 컴퓨터에서 4KB씩밖에 안되서 그게 문제가 아니군요

다시 풀어보겠습니다.

sait2000   4년 전

? 저 .pop(0) 해서 맞았는데요.

sait2000   4년 전

결과 배열이 길이가 0일 수 있어요. 그런 경우가 제대로 안 될 것 같아보이는데요.

jh05013   4년 전

?!

파이썬 시간제한이 10초 더 길다는 것을 간과했네요. O(n)이라서 비효율적이긴 합니다.

chronine   4년 전

두분 다 감사합니다!

덕분에 풀었습니다.

댓글을 작성하려면 로그인해야 합니다.