CLOCKSYNC 시간초과

  • hyunwooj
    hyunwooj

    알고리즘 문제 해결 전략 책을 보면서 CLOCKSYNC를 풀었습니다(제출 답안). 책과 같은 방법으로 풀었는데 시간초과가 나오네요. 제가 잘못풀었는데 같은 방법으로 풀었다고 잘못생각하는건지, 아니면 단지 python이라서 시간초과가 나온건지 궁금합니다.


    9년 전
6개의 댓글이 있습니다.
  • fleo0917
    fleo0917

    파이썬이라서 안 되는 거 맞습니다.
    최대한 최적화를 하면 파이썬으로도 간당간당하게 통과 됩니다.
    문제를 조금만 비틀면 파이썬으로도 빠르게 풀립니다.


    9년 전 link
  • JongMan
    JongMan

    pypy로 내 보세요. (pypy는 단 python 2만 지원합니다.)


    9년 전 link
  • hyunwooj
    hyunwooj

    답변 감사합니다.

    @JongMan pypy로 제출했는데 또 시간초과네요.. 프로파일링해서 나름 최적화도 했는데 역부족인가 봅니다.

    통계를 보면 python으로 굉장히 빠른시간내에 푼 답안들이 보이네요. 이때는 채점 환경이 달랐던건가요?? 더 빠른 알고리즘을 고안하신건가요??

    자잘한 최적화보다는 문제 풀이에 더 초점을 두고 공부하다보니 이런 문제로 막혀버리면 다소 지치는 감이 있습니다. 실제 대회에서는 언어간 성능차이를 어떻게 다루고있는지 궁금하네요.


    9년 전 link
  • JongMan
    JongMan

    음 pypy로도 안나오는군요.. 대부분 실제 대회에서는 그래서 C++이나 자바를 쓰십니다. :) 코드잼 등 시간제한이 넉넉한 경우에는 일부 파이썬을 쓰기도 하고요. (그렇다고 하더라도 계산량이 많은 문제에서 파이썬을 쓰기 어려운 경우가 많습니다.)

    파이썬으로 빠른 시간내에 푼 답안들은 문제의 특성을 이용해 더 빠른 알고리즘을 고안하신 경우들이네요.


    9년 전 link
  • JongMan
    JongMan

    보니까 C++로 완전 탐색한 코드가 1초가 넘게 나오네요. 그럼 파이썬으로는 완전탐색으로는 풀 수 없다고 보시는 게 맞는 듯.. ㅠ 더 빠른 알고리즘은 이 스레드에서 힌트를 보세요.


    9년 전 link
  • hyunwooj
    hyunwooj

    @JongMan 감사합니다. 링크해주신 스레드 덕분에 해결했습니다. show spoiler기능 좋네요.


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.