LeetCode (9) - Jump Game(파이썬, python)

1 분 소요

❓ 문제

You are given an integer array nums. You are initially positioned at the array’s first index, and each element in the array represents your maximum jump length at that position.

Return true if you can reach the last index, or false otherwise.

Example 1:

Input: nums = [2,3,1,1,4]
Output: true
Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last index.

Example 2:

Input: nums = [3,2,1,0,4]
Output: false
Explanation: You will always arrive at index 3 no matter what. Its maximum jump length is 0, which makes it impossible to reach the last index.

Constraints:

  • 1 <= nums.length <= 104
  • 0 <= nums[i] <= 105

Given Code

class Solution:
    def canJump(self, nums: List[int]) -> bool:
        

내 풀이

class Solution:
    def canJump(self, nums) -> bool:
        go = [False for _ in nums]
        max = 0
        if len(nums) == 1:
            return True
        for i in range(len(nums)):
            print(max, ' / ', len(nums))
            go[i] = True
            if i + nums[i] > max:
                max = i + nums[i]
                if max >= len(nums) - 1:
                    return True
            if nums[i] == 0 and max <= i:
                return False
        return True

max라는 변수에 최대 인덱스 놔서 풀었는데… 카테고리가 Dynamic Programming으로 되어있어서 이걸로 해야할거같은데…. 그냥 나중에 볼래