wlgur1023   2년 전

base case를 고쳐서 맞긴 하였으나, 틀렸던 부분이 이해되지 않아 질문글을 올립니다.

n개의 블록 목록들을 앞에서부터 쓰거나, 쓰지 않으며 DP함수를 호출하였습니다.

가장 마지막 블록을 쓰는 상황은 곧 가장 처음 블록을 바닥에 쌓는 상황 일치합니다.

한편, 가장 마지막 블록을 쓸 때, 마지막 블록의 높이(height[n])가 함수가 요구한 높이차(diff)와 일치해야만 

제가 정의한 함수인 f(n, diff):: n번째 블록부터 남은 블록들을 볼 때, 높이차가 diff를 만족하는 탑의 최대 높이

의 정의를 만족합니다.

따라서 이때 바닥에 높이가 height[n]인 블록을 처음으로 하나 쌓았다고 생각할 수 있고

탑의 최대 높이가 곧 블럭의 높이이므로 maxSum = height[n]를 반환할 수 있다고 생각했습니다.

이렇게 생각하여 base case를 주석 부분과 같이 작성하였는데 틀렸습니다.

이 base case가 틀린 이유가 무엇일까요?

kdh6429   2년 전

다이해한건 아나지만.. 마지막 블록을 사용하지 않는 경우도 고려해야 하지않을까요.

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