jkjan   4년 전

파이썬으로 먼저 작성을 했습니다.

알고리즘이랑 구현은 안 틀렸는데 (이 강의를 두 번 보고 따라함 :

)

엄청 느리지만 맞긴 맞다가 중간에 19%인가에서 시간초과가 나더랍니다.

제가 잘못 짠 거 같지는 않아서 혹시 C++로  하면 될까 해서 C++14 로 돌려봤더니 아주 빠르게 잘 돌아갑니다.

이거 제가 파이썬으로 구현을 잘못한 건가요?

파이썬 코드를 문법만 달리한 건데 이게 왜 시간초과가 나는지 모르겠네요.

파이썬이 C++ 보다 느린 것은 알지만, 문제 하나의 당락이 좌우될 정도로 이렇게 차이가 나나요???

위는 통과한 C++14 코드, 아래는 파이썬 코드입니다.

yoonhs3434   4년 전

제 경우는 파이썬3와 pypy3 모두 통과를 했습니다만, C++과 파이썬은 문제 하나의 당락이 결정될만큼 차이가 있습니다.

파이썬의 태생적 한계 때문에 어쩔 수 없는 사항이라, 저도 언어를 C++로 바꾸려고 생각중입니다 :)

dp = [[0] * 102 for i in range(0, 100001)]
W = [0] * 101
V = [0] * 101

이 부분의 101을 N+1 이나 N으로 바꾸면 해결될 것이라 생각됩니다.

또한 input()은 느리므로

import sys

sys.stdin.readline().rstrip()

로 바꿔주면 더 속도가 빨라집니다.

이런 소소한 작업들은 후에 더 귀찮아 질 것이므로 C++을 쓰는게 머리털을 지킬 가장 좋은 방법 같습니다.

jkjan   4년 전

좋은 댓글 감사드립니다. 사실 C++ 골수팬이다가 이번에 딥러닝하면서 연습차 백준을 파이썬으로 푸는데

딥러닝할 때만 파이썬 쓰고 문제 풀 때는 C++을 써야겠습니다.

그런데 머리털은 이미 없으므로 딱히 달라질 것은 없을 것 같네요...

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