2156번 - 포도주 시식
포도주의 개수가 n개일때 마실수 있는 최대량을 f(n)이라 하고,
n번째 포도주의 양을 an이라고 할때
f(n)=max(f(n-1),f(n-2)+an,(fn-3)+an+a(n-1))
임을 이용하여 풀었습니다.
반복문을 이용해 bottom-up으로 풀었을때는 런타임에러가 발생하지 않았는데,
재귀를 이용해 top-down으로 풀었을때는 런타임에러가 발생했습니다.
sys모듈을 임포트해 재귀 깊이를 인위적으로 늘려보아도 시간 초과가 발생합니다.
단순히 함수 호출에 의한 오버헤드때문인가요?
아니면 제가 놓친 부분이 있는건가요?
놀랍게도 그냥 Python3로 제출하면 잘 돌아갑니다. Pypy3가 불안정하긴 한데 이건 너무 이상하군요.
@startlink
댓글을 작성하려면 로그인해야 합니다.
mygm1302 5년 전
포도주의 개수가 n개일때 마실수 있는 최대량을 f(n)이라 하고,
n번째 포도주의 양을 an이라고 할때
f(n)=max(f(n-1),f(n-2)+an,(fn-3)+an+a(n-1))
임을 이용하여 풀었습니다.
반복문을 이용해 bottom-up으로 풀었을때는 런타임에러가 발생하지 않았는데,
재귀를 이용해 top-down으로 풀었을때는 런타임에러가 발생했습니다.
sys모듈을 임포트해 재귀 깊이를 인위적으로 늘려보아도 시간 초과가 발생합니다.
단순히 함수 호출에 의한 오버헤드때문인가요?
아니면 제가 놓친 부분이 있는건가요?