Problem From.
https://leetcode.com/problems/jump-game-ii/
오늘 문제는 DP 를 이용하여 풀 수 있는 문제였다.
각 칸에 도착했을때, 그 칸에 있는 숫자만큼 다음칸을 검사하면서, 그 칸이 0이라면 각 칸의 점프 횟수에 1을 더해서 누적해주고, 0 이 아니라면 점프할 수 있는 더 적은 경우의 수가 있으니 넘어가는 식으로 코드를 작성하였다.
class Solution {
fun jump(nums: IntArray): Int {
if(nums.size == 1) return 0
val memo = Array(nums.size) { 0 }
for(i in 0 until nums.size) {
val jump = nums[i]
for(j in i+1 .. i+jump) {
if(memo[j] == 0) memo[j] = memo[i] + 1
if(memo[nums.size - 1] != 0) return memo[nums.size - 1]
}
}
return memo[nums.size - 1]
}
}