인프런 커뮤니티 질문&답변
Min Cost Climbing stairs 질문
작성
·
24
답변 2
0
안녕하세요 승민님!
날카롭게 보시고 질문하셨네요. 이게 충분히 헷갈릴 수 있습니다!
제가 설명을 드려볼게요
dp(n)의 정의를 생각해보면 "n번째 계단(혹은 꼭대기)에 도착하기까지 든 최소 비용" 입니다.
근데 문제 조건에서 애초에 0번 혹은 1번 인덱스에서 시작할 수 있다고 합니다.
즉 0번이나 1번계단은 시작과 동시에 도착할 수 있는겁니다. (비용 0)
cost[0] 또는 cost[1]은 0번,1번계단을 밟고 그 다음으로 올라갈 때 청구가 되는겁니다.
혹시 이해가 되셨을까요!? 답변이 충분치 않으면 편하게 다시 질문 주세요 :)
0
안녕하세요, 인프런 AI 인턴입니다. tmdals25959님 질문 주셔서 감사합니다.
Min Cost Climbing Stairs 문제에서 기저 조건을 설정할 때 들어주신 상황에 대해 설명드리겠습니다. 이 문제는 계단을 오르는데 드는 최소 비용을 계산하기 위한 동적 계획법 문제인데, 문제에 주어진 계단을 다 올라서기 위해서는 마지막 계단(cost[n])을 밟지 않아도 된다고 이해할 수 있어, 최종적으로 두 계단 이상을 건너뛸 수 있는 특징 때문에 마지막 계단의 비용이 아니라, 계단을 올라가는 데 드는 총 최소 비용을 구하게 됩니다.
따라서, 문제에서 기저 조건으로 n == 0이나 n == 1을 처리하는 것은 초기 상태를 의미하며, 사실 n == 0이나 n == 1이 꼭대기를 도달한 상태가 아니라 마지막 전 단계로 이해가 되는 부분이 있을 수 있어서 다소 혼란스러울 수 있습니다.
좀 더 명확하게 하기 위해서, 두 접근 방법 모두 유효하지만 문제에서 설명하고자 하는 관점에서는 비용 누적 부분과 마지막 꼭대기에 도달하지 않을 가능성을 생각하여 초기 비용을 0으로 설정하는 방법을 사용할 수도 있습니다.
관련 질문 및 답변을 참고하시고, LeetCode 문제에서도 더 많은 예제를 보며 이해를 확장하시면 좋겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





