[LeetCode]Jump Game

2023. 5. 24. 19:03·SW개발/코딩테스트

https://leetcode.com/problems/jump-game/

 

Jump Game - LeetCode

Can you solve this real interview question? Jump Game - 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

leetcode.com

 

문제 분석

nums 배열이 주어졌을 때 마지막 index에 도달할 수 있는지를 구하는 문제입니다.

 

처음 시도한 답안

class Solution:
    def canJump(self, nums: List[int]) -> bool:
        # 가장 멀리 갈 수 있는 위치 저장
        next_jump_max = 0

        for idx in range(len(nums)-1):
            # 가장 멀리 갈 수 있는 위치 저장
            next_jump_max = max(nums[idx] + idx, next_jump_max)
            
            # 만약 0을 만났을 때 점프해도 더 멀리 갈 수 없는 경우라면 끝까지 도달하지 못함.
            # 최대로 점프할 수 있는 거리가 idx보다 작다면 더이상 전진할 수 없음.
            if nums[idx] == 0 and next_jump_max <= idx:
                return False
                
        # 반복이 종료된 후 최대 점프로 끝까지 도달하지 못한다면
        if next_jump_max < len(nums)-1:
            return False

        return True

# [2,3,1,1,4]
#  0,1,2,3,4
# [2,4,4,4,X]
# if 4 < 4: 


# [3,2,1,0,4]
#  0,1,2,3,4
# [3,3,3,]

접근 방법

  1. 반복문을 순회합니다.
  2. 가장 멀리 갈 수 있는 위치를 저장합니다.
    가장 멀리 갈 수 있는 위치는 현재의 idx 값 + 등장한 숫자 값과 next_jump_max중 큰 값으로 설정합니다.
  3. 만약 반복하다가 0을 만난 경우에 next_jump_max 값이 idx 보다 작다면 더이상 전진할 수 없습니다. False 입니다. (더 앞으로 전진이 불가능한 상태)
  4. 반복이 종료된 후에 끝까지 도달하지 못했다면 False 입니다.
  5. 아니라면 True 입니다.

반복을 순회하면서 가장 멀리 도달할 수 있는 위치를 계속해서 갱신합니다. 그러다 0을 만난 경우라면 앞으로 전진이 가능한지 살펴봅니다.

반복이 모두 종료되면 끝까지 도달했는지 확인할 수 있습니다.

 

728x90

'SW개발 > 코딩테스트' 카테고리의 다른 글

[LeetCode]Set Matrix Zeroes  (0) 2023.05.26
[LeetCode]Minimum Path Sum  (0) 2023.05.25
[LeetCode]Spiral Matrix II  (0) 2023.05.23
[LeetCode]Spiral Matrix  (0) 2023.05.22
[LeetCode]Maximum Subarray  (0) 2023.05.21
'SW개발/코딩테스트' 카테고리의 다른 글
  • [LeetCode]Set Matrix Zeroes
  • [LeetCode]Minimum Path Sum
  • [LeetCode]Spiral Matrix II
  • [LeetCode]Spiral Matrix
Leffe_pt
Leffe_pt
개발자로서 성장하면서 배워온 지식과 경험을 공유하는 공간입니다.
  • Leffe_pt
    Leffe's tistory
    Leffe_pt
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • SW개발 (303)
        • 코딩테스트 (172)
        • 개발이야기 (23)
        • IT 용어 (17)
        • Python (22)
        • Django (46)
        • Flask (2)
        • Database (1)
        • SQLAlchemy (0)
        • Javascript (5)
        • Linux, Unix (3)
        • JAVA (2)
        • Spring (10)
      • 회고 (4)
      • 사진 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오픈소스
    음식
    g
    배공파용
    django
    어플리케이션
    트리 #AVL #알고리즘 #자료구조
    라이프 스타일
    컨트리뷰터
    배달비 공유
    Contributor
    배달
    플레이스토어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Leffe_pt
[LeetCode]Jump Game
상단으로

티스토리툴바