문제 링크 : https://leetcode.com/problems/jump-game/
주어진 배열 nums에서 각 요소들은 점프할 수 있는 최대 길이를 나타낸다.
만약 마지막 인덱스까지 도달할 수 있으면 True, 없으며 False 반환
예를 들어 nums = [2,3,1,1,4]가 있으면
만약 맨 마지막 4 앞에 1에 도착할 수 있다면 맨 마지막 4에 도달할 수 있다는 것을 알 수 있다.
그리고 그 앞에 nums[2] = 1에 도착할 수 있다면 그 다음 1에 도착할 수 있다.
그런식으로 반드시 도착해야만 하는 곳 goal을 만들어서 계산해서 풀면 쉽게 풀 수 있다.
class Solution:
def canJump(self, nums: List[int]) -> bool:
goal = len(nums)-1
for i in range(len(nums)-1,-1,-1):
if i + nums[i]>= goal:
goal = i
return True if goal == 0 else False