55. Jump Game

Created
Sep 8, 2023 02:41 PM
Modified
Last updated December 7, 2023
Tag
Leet Code
Medium
  • array의 크기가 맀우 크고 (10^4) 경우의 μˆ˜κ°€ 많기 λ•Œλ¬Έμ— frog jump와 같이 bfs 방식을 μ‚¬μš©ν•  수 μ—†λ‹€.
  • ν˜„μž¬ μœ„μΉ˜μ—μ„œ μ΅œλŒ€λ‘œ jump ν•  수 μžˆλŠ” 길이(maxJump)λ₯Ό κ³„μ‚°ν•œλ‹€.
    • maxJumpλŠ” ν•œ 칸을 이동할 λ•Œ λ§ˆλ‹€ κ°μ†Œν•œλ‹€.
    • 그리고 ν˜„μž¬ μœ„μΉ˜μ—μ„œ λ›Έ 수 μžˆλŠ” 거리가 더 크닀면 κ·Έ 값을 maxJump둜 ν•œλ‹€.
  • maxJumpκ°€ 0 미만이 되면 더 이상 μ•žμœΌλ‘œ μ „μ§„ν•  수 μ—†λŠ” μƒν™©μœΌλ‘œ νŒλ‹¨(false)ν•œλ‹€.
class Solution { public: bool canJump(vector<int>& nums) { int end = nums.size() - 1; int maxJump = 0; for (int pos = 0; pos < end; ++pos) { int jump = nums[pos]; if (jump > maxJump) { maxJump = jump; } --maxJump; if (maxJump < 0) return false; } return true; } };