본문 바로가기
프로그래밍

leetcode 45. Jump Game II 풀이

by 웃즐 2021. 4. 21.

문제 : int로 이루어진 list의 첫번째 index에서 시작해서 원소만큼 이동할 수 있을 때. 마지막 원소에 도달하는 최소 횟수를 구하라. (반드시 도달할 수 있는 입력만 주어진다)

Follow up :

 

아이디어 : Jump Game 1 에서 푼 것과 같이 탐색을 진행하며 count 를 증가시킨다. 마지막 원소에 도달하면 count를 return한다.

 

코드 :

 

class Solution:
    def jump(self, nums: List[int]) -> int:
        if len(nums) == 1:
            return 0
        def find(s, e, t):
            if len(nums) <= e:
                return t
            m = -1
            for i in range(s, e):
                m = max(m, i + nums[i])
            s = e
            e = m + 1
            print(s, e, t, m)
            return find(s, e, t+1)
        s = 0
        e = s + nums[s] + 1
        if len(nums) < e:
            e = len(nums)
        ans = find(s, e, 1)
        return ans
        

 

학습 포인트 : Jump Game 1 에서의 풀이는 다소 시간과 메모리를 많이 소모했지만 이 문제에서는 최소 점프 횟수를 구해야하므로 적절한 풀이인거 같다.

 

출처 : leetcode.com/problems/jump-game-ii/

'프로그래밍' 카테고리의 다른 글

leetcode 739. Daily Temperatures 풀이  (0) 2021.04.22
leetcode 64. Minimum Path Sum 풀이  (1) 2021.04.22
leetcode 55. Jump Game 풀이  (0) 2021.04.20
leetcode 39. Combination Sum 풀이  (0) 2021.04.20
leetcode 15. 3Sum 풀이  (0) 2021.04.14