코드없는 프로그래밍 님의 DP강의 중 최소비용 계단오르기 강의를 참고하여 작성했습니다
https://www.youtube.com/watch?v=lhZTYwHgrDM&list=PLDV-cCQnUlIa0owhTLK-VT994Qh6XTy4v&index=3
계단이 n개까지 있을 때, n층에 올라갈 수 있는 방법은 f(n)=f(n-1)+f(n-2)이다.
f(1)=1
f(2)=2 --> 한칸 씩, 한번에 올라가는
f(3)=3
등등이다.
그러면 가장 최소비용으로 계단을 올라가는 방법을 알아보자.
[1,2,4,6,2] 의 5층의 계단이 있다.
f(0)=0+1이다 왜냐하면 바닥에서 한번에 올라갈 수 있고, arr[0]=1(여기서 arr[0]은 0층의 값을 나타냄) 이므로 0+1=1이다.
f(1)=0이다. 얘도 바닥에서 한번에 올라갈 수 있기 때문에 0+2이다.
f(2)는 에서 올라가거나 f(2)에서 올라갈 수 있다. f(2)=Math.min(f(0),f(1)) 즉 f(2)=1
이렇게 f(n)까지 해나가면 된다!
문제로 풀어보기
https://www.acmicpc.net/problem/2579
2579번: 계단 오르기
계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점
www.acmicpc.net
https://we1cometomeanings.tistory.com/88
[java 백준] 실버 3/ 2579번 계단오르기
https://www.acmicpc.net/problem/2579 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점" data-og-host="www.acmicpc.net" data-og-source-url="https://www.acmicpc.ne..
we1cometomeanings.tistory.com
백준 2579번 문제는 최대비용 계단오르기이다. 참고하면 좋을듯하다.
'알고리즘 > DP' 카테고리의 다른 글
[java 백준] 실버 3/1699번 제곱수의 합 (0) | 2021.08.07 |
---|---|
[DP기초] 필요한 동전의 최소개수 구하기 (0) | 2021.08.06 |
[java 백준] 실버 2/ 11055번 가장 큰 증가 부분 수열 (0) | 2021.08.05 |
[java 백준] 실버 2/1912번 연속합 (0) | 2021.08.05 |
[java 백준] 실버 3/ 2579번 계단오르기 (0) | 2021.08.05 |
댓글