업데이트:

최대 1 분 소요

링크

https://leetcode.com/problems/jump-game/?envType=study-plan-v2&envId=top-interview-150

풀이

주어진 배열(발판) nums 안에 적혀있는 수에 따라 최대 점프 가능한 발판의 수가 적혀있다. 발판을 밟아 가면서, 마지막 발판 까지 도착할 수 있는지 반환해야하는 문제.

  1. 발판을 하나씩 밟아간다.
    1. 이 때 도달할 수 있는 최대 발판과 비교하여 현재 발판을 최대 가능한 발판이 도달할 수 없다면 False를 반환한다.
    2. 현재 발판에 최대 발판이 도달할 수 있다면 최대 발판을 갱신한다.(최대 발판은 현재 발판의 위치 + 현재 발판을 통해 갈 수 있는 최대 발판이다)
  2. 마지막 발판 까지 도달할 수 있다면 True를 반환한다.

코드

Python

class Solution(object):
    def canJump(self, nums):
        to = 0

        for i in range(len(nums)):
            if to < i:
                break
            to = max(to, i + nums[i])
        
        else: return True

카테고리:

업데이트:

댓글남기기