pnkprst   8달 전

테스트케이스에서 n의 범위의 최대가 무지막장하게 큰데

(3 + √5)

그걸 지수에다 박아버리니까 런타임 에러 (OverflowError)가 발생하더라고요

pow함수의 세번째 인수를 쓴다면 파이썬에서 가능한 최대 수를 넘지 않을 것 같지만 (3 + √5)이 유리수라서 불가능합니다.

seawon0808   8달 전

이 문제의 알고리즘 분류에 분할 정복을 이용한 거듭 제곱이 있으므로 이것을 사용해야 될 것 같습니다.

그리고 이 문제는 작성자 님의 수준보다 훨씬 어려운 문제입니다.

bamgoesn   8달 전

n의 최댓값이 매우 크기 때문에 단순 pow 함수로는 무리인 점을 확인하신 모양이네요. 그러면 왜 틀린 건지, 어떻게 고칠 수 있을지 아니면 다른 방법으로 풀 수 있을지 생각해보시는 게 올바른 수순이겠죠.

다만 실수 자료형으로 계속 시도해보시기 전에, 부동 소수점 오차라는 걸 잘 모르신다면 이에 대해 따로 찾아보신 후에 고민해보셔야 헛발질을 피할 수 있을 겁니다.

꼭 어려운 문제라고 해서 고민도 하지 말아야 하는 법은 없으니까요. 고민해보는 건 자유죠. 일단 지금 에러를 맞닥트리신 건 제출하신 코드는 틀린 코드니까 무언가 틀린 점을 찾아서 고치거나 다른 방법을 생각해봐야 한다는 뜻입니다.

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