강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

tmdals25959님의 프로필 이미지
tmdals25959

작성한 질문수

코딩테스트 [ ALL IN ONE ]

[코테 적용] 👉 [Min cost climbing stairs] 완전탐색 / DP (전반부)

Min Cost Climbing stairs 질문

작성

·

24

0

안녕하세요.

[Min Cost Climbing stairs]에서

base code 설정시에

if n==0 or n==1:

return 0

이 아닌

 

if n==0:

return cost[0]

if n==1:

return cost[1]

로 설정해야 되는 것이 아닌지 문의드립니다.

인덱스 1에 있다고 하더라도 1을 밟아야 꼭대기에 도달할 수 있는 것이니 해당 인덱스의 cost 값을 return 해야하지 않는지에 대해 의문이 듭니다.

 

답변 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 문제에서도 더 많은 예제를 보며 이해를 확장하시면 좋겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

tmdals25959님의 프로필 이미지
tmdals25959

작성한 질문수

질문하기