Leetcode Java Jump Game

업데이트:

문제

Link

코드

class Solution {

  public boolean canJump(int[] nums) {
    int position = 0;
    for (int idx = 0; idx < nums.length; idx++) {
      if (position < idx) {
        return false;
      }
      position = Math.max(idx + nums[idx], position);
    }
    return true;
  }

}

결과

Link

설명

  1. 주어진 배열 num의 0번째 인덱스에서 시작하여 각 위치의 값만큼 이동하여 해당 배열의 마지막 위치까지 이동이 가능한지를 확인하는 문제이다.

  2. 현재의 위치를 저장하기 위한 변수 position을 배열의 시작 위치인 0으로 정의한다.

  3. 반복문을 통해 배열을 탐색하여 주어진 배열 nums의 마지막 위치에 도달하는지 확인한다.
    • 현재 위치를 저장한 position이 반복을 수행하는 위치인 idx보다 작을 경우, nums[idx]의 값이 0이라는 의미이므로 주어진 문제의 결과로 false를 반환한다.
    • 현재 위치를 저장한 position과 $idx + nums[idx]$의 값을 비교하여 position에 저장하고 반복을 계속한다.
  4. 반복이 종료되면 배열 nums의 마지막 위치에 도달 할 수 없다는 의미이므로, 주어진 문제의 결과로 true를 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기