jdw0429   5년 전

이 문제 도전한 파이썬 사용자가 8명인데 아직 문제를 푼 사람이 없습니다.

다른 언어로는 DP로 풀이 하신 분들이 계시는데

아직 파이썬으로 DP 구현하는 것을 공부하지 않아서 제 나름대로 재귀 형태로 풀어 보았습니다.

먼저 findCandidates 함수를 이용해서 가격의 합이 m 과 같은 정답 후보군들을 모은 다음에 

정답 후보군들의 칼로리를 비교해서 칼로리가 가장 큰 값을 출력하는 방향으로 작성하였습니다.


Goole Colab 을 이용해서 예제를 돌려보면 아무 문제 없이 정답이 나오는데

백준에서 돌리면 런타임에러가 뜹니다. 

코드를 한줄씩 작성해서 검사했을 때 에러가 뜨는 곳은 findCandidates 함수에서 다시 한번 findCandidates 함수를 호출하는 줄에서 런타임에러가 뜨는 것 같습니다.

hello70825   5년 전

함수 호출하는 쪽에서 런타임 에러가 나는 것이라면 아마 재귀 함수 깊이 때문에 그런 것이 아닐까 생각 됩니다.

재귀로 풀 때 기본적으로 설정되어 있는 깊이가 작아서 대부분 따로 설정해야 런타임 에러를 피하더라구요

sys.setrecursionlimit(100000)

jdw0429   5년 전

hello 님 말씀대로 재귀 함수 깊이 제한, 10**6 으로 풀었는데도 여전히 런타임 에러가 뜨네요 ㅠㅠ

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