์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค

Eager To Learn ๐ŸŒŒ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/LeetCode 150

[Java] 55. Jump Game

2023. 8. 24. 18:10

๋ฌธ์ œ ํŒŒ์•…

 

์ •์ˆ˜ ๋ฐฐ์—ด nums ๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.

 

์ธ๋ฑ์Šค์— ์ฃผ์–ด์ง„ ๊ฐ’์€ ์ตœ๋Œ€๋กœ ์ ํ”„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด๋‹ค.

 

๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉด true ๋ฅผ ์—†์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค.

 


ํ’€์ด

 

1๏ธโƒฃ

 

๋‚ด๊ฐ€ ๋– ์˜ฌ๋ฆฐ ์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  1. ํ˜„์žฌ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๋›ธ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ํ™•์ธํ•œ๋‹ค.
    1. ๋งŒ์•ฝ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๋›ธ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜๊ฐ€ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค ( nums.length - 1 ) ์ด์ƒ์ด๋ผ๋ฉด true ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  2. ํ˜„์žฌ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๋›ธ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค ๊นŒ์ง€ ์ˆœํšŒํ•˜๋ฉด์„œ, ๋‹ค์Œ์œผ๋กœ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๊ณ  ์ด๋™ํ•œ๋‹ค.
    1. [2, 3, 1, 1, 4] ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์ž๋ฉด, ํ˜„์žฌ ์œ„์น˜ 0์ธ 2์—์„œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋Š” 1๊ณผ 2์ด๊ณ  
      ์ธ๋ฑ์Šค 1์€ (1 + 3) = 4๋ฒˆ ์ธ๋ฑ์Šค ๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๊ณ 
      ์ธ๋ฑ์Šค 2๋Š” (2 + 1) = 3๋ฒˆ ์ธ๋ฑ์Šค ๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 
      1๋ฒˆ ์ธ๋ฑ์Šค๋กœ ์ด๋™ํ•œ๋‹ค.
    2. ๋งŒ์•ฝ, ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๊ฐ€ ์—†๋‹ค๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      [3, 2, 1, 0, 4] ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค๋ฉด, ํ˜„์žฌ ์œ„์น˜ 0์ธ 3์—์„œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋Š” 1, 2, 3 ์ธ๋ฐ
      1, 2, 3 ์ธ๋ฑ์Šค ๋ชจ๋‘ 3๋ฒˆ ์ธ๋ฑ์Šค ์œ„์น˜๊นŒ์ง€ ๋ฐ–์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋‹ค.

 

์œ„ ์•„์ด๋””์–ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค.

 

class Solution {
    public boolean canJump(int[] nums) {
        int start = 0;
        while (true) {
            int maxJump = start + nums[start];

            if (maxJump >= nums.length - 1) {
                return true;
            }

            int maxIdx = start;

            for (int i = start + 1; i <= maxJump; i++) {
            	// ๊ธฐ์กด๋ณด๋‹ค ๋” ๋ฉ€๋ฆฌ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ฐฑ์‹ 
                if (nums[i] + i > nums[maxIdx] + maxIdx) {
                    maxIdx = i;
                }
            }

            if (start == maxIdx) {
                return false;
            }

            start = maxIdx;
        }
    }
}

 

๊ฒฐ๊ณผ

 

 

2๏ธโƒฃ 

๋กœ์ง์ด ์กฐ๊ธˆ ๋ณต์žกํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ์ •๋ˆํ•ด์„œ ๋‹ค์‹œ ํ’€์–ด๋ดค๋‹ค.

 

ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” ๋น„์Šทํ•˜๋‹ค.

 

nums ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ณ„์† ์—…๋ฐ์ดํŠธํ•˜๋Š”๋ฐ, 

 

์ˆœํšŒํ•˜๋Š” ์œ„์น˜๊ฐ€ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด, ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

class Solution {
    public boolean canJump(int[] nums) {
        int limit = 0;
        for (int i = 0; i < nums.length; i++) {

            if (i > limit) {
                return false;
            }

            int jump = nums[i] + i;

            if (jump > limit) {
                limit = jump;
            }

        }
        return true;
    }
}

 

๊ฒฐ๊ณผ

์‹œ๊ฐ„์ด ๋‹จ์ถ•๋˜์—ˆ๋‹ค.

 


๐Ÿ“– ํšŒ๊ณ 

์ƒ๊ฐํ•œ ์•„์ด๋””์–ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๊ฐ€ ํ†ต๊ณผํ•ด์„œ ๊ธฐ๋ถ„์ด ์ข‹์•˜๋‹ค.

 

๊ตฌํ˜„ํ•ด๋ณด๊ณ , ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฆฌํŒฉํ† ๋ง ํ•ด๋ณด๋Š” ๊ณผ์ •์€ ๊ท€์ฐฎ๊ณ  ์–ด๋ ค์› ์ง€๋งŒ ๋‚˜๋ฆ„ ์žฌ๋ฏธ๋„ ์žˆ์—ˆ๋‹ค.(๋‹ค๋งŒ ์‹œ๊ฐ„์ด ๋…น์•˜์„ ๋ฟ..)

 

 

 

    '๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/LeetCode 150' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Java] 167. Two Sum II - Input Array Is Sorted
    • [Java] 125. Valid Palindrome
    • [Java] 122. Best Time to Buy and Sell Stock 2
    • [Java] 121. Best Time to Buy and Sell Stock
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”