sula50   4년 전

처음에 아래쪽에 주석 처리된 코드로 했는데 시간초과가 나서,

배열 크기같은 거 정해놓으면 조금이나마 빨라질까 해서 위에것으로 바꿨어요.

그런데 런타임에러가 나요.

제가 쓰는 python 3의 version 은 3.7.3이고 

이 shell 에서는 해당 코드가 문제 없이 돌아가는데 사이트에서는 안 되는 이유를 알고싶어요.

만약 다시 시간초과가 났다면,

'내가 이런 방식을 처음 접해서 미숙하구나. 좀더 low level에서 구현하는 걸 알아봐야겠다.'

하겠는데

이건 되기도 하고 안 되기도 하니까 어디가 문제인건질 모르겠어요.

happiness96   4년 전

입력을 받을 때 생기는 문제인 것 같아요~

input 함수보다 더 빨리 입력을 받는 방법이 있어요.

input 대신 sys.stdin.readline 함수를 사용해보세요.

sula50   4년 전

입력 부분을 수정해도 시간초과가 나오네요.

또, 같은 방식을 다른 언어로 취해도 느린게 전반적으로 문제가 있는 것으로 여겨집니다, 어떤 식으로든.

지금 저로서는 알기 어렵지만요...ㅠ

다른 방식을 생각해보는 편이 좋아 보여서 강해지러 가야겠습니다.

답글 감사합니다.

djm03178   4년 전

파이썬 3는 그냥 너무 느린 언어입니다. 그 뿐입니다. C 계열의 언어에 비해 최소 수십에서 백배 수준까지 느리기 때문에 BOJ의 시간 보너스로 상쇄하기에는 어림도 없습니다. 내장 함수가 아닌 직접 구현한 코드로 백만log백만은 파이썬 3로 시간 내에 풀기에는 너무 큽니다. 대신에 PyPy3를 사용하면 훨씬 빠릅니다.

가장 최근에 시간 초과를 받으신 코드를 PyPy3로 제출하면 정답을 받습니다. http://boj.kr/666af9e55af64099...

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