math.factorial이 O(1)이 아닙니다. factorial의 결과 자릿수가 아주 클 수 있고, 계산 시간 복잡도는 그 자릿수보다도 더 큽니다.
11332번 - 시간초과
하지만 python3으로 아주 빨리 통과하신 분들 코드 보면 math.factorial함수를 쓰셨더라고요..
http://boj.kr/eb015be977e8407d... 와 같이 math.factorial(500000)으로도 상당한 시간이 걸리며, 100만을 사용할시 TLE가 납니다.
아.. 죄송합니다 제가 잘못 본 것 같습니다.. 예외처리해주니 빠르게 돌아가네요 감사합니다!
알려주신 시간 체크 방법이 되게 유용한거같습니다 ! 저 코드는 2400ms의 시간이 소요되는데, 모든 테스트케이스를 통과한 시간인가요?
저 문제의 시간 제한은 1초인데 2.5초가 걸린 테스트케이스가 통과한 이유가 궁금합니다 !
언어별 시간 보너스 때문입니다.
댓글을 작성하려면 로그인해야 합니다.
thdruddyd21 3년 전
조건문 연산들 다 O(1)이고 비교도 최소화했다고 생각했는데 왜 Python3로 채점하면 초과하는지 모르겠습니다 ..