๋ณธ ๊ธ์ LeetCode Top Interview 150์ ์ ๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ์์ฝํ๊ณ ์ด์ ๋ํ ๊ฐ์ธ์ ์ธ ํ์ด๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
๋ณธ ํฌ์คํ ์๋ฆฌ์ฆ๋ 150 list์ ์์๋ฅผ ๋ฐ๋ผ์ ๊ฒ์ฌ๋ฉ๋๋ค. ํ์ด ์ธ์ด๋ python3์ ์ฌ์ฉํฉ๋๋ค.
๋์ด๋: Medium
ํค์๋: Array, DP
๋ฌธ์
๋ฌธ์ ์๋ฌธ: https://leetcode.com/problems/jump-game-ii/?envType=study-plan-v2&envId=top-interview-150
์ ์ํ ๋ฐฐ์ด nums๊ฐ ์ฃผ์ด์ก๋ค๊ณ ํ์. ๋น์ ์ ์ฒ์์ ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ index์ ์์นํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด์ ๊ฐ ์์๋ ํด๋น ์์น์์๋ถํฐ ๋น์ ์ด ์ต๋๋ก ์ ํํ ์ ์๋ ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค. ์ด ๋, ๋ง์ง๋ง index ์ ๋๋ฌํ๋๋ฐ ํ์ํ jump ์์ ์ต์๊ฐ์ ๋ฐํํด๋ผ.
* ํญ์ nums[n-1]์ ๋๋ฌํ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ค.
์์ ์ ๋ ฅ
Input: nums = [2,3,1,1,4]
Output: 2
Explanation: The minimum number of jumps to reach the last index is 2. Jump 1 step from index 0 to 1, then 3 steps to the last index.
ํ์ด
Jump Game (55) ๋ฌธ์ ์ ์ ์ฌํ ๋ฌธ์ ์ด๋ค. ๋ค๋ง, ์ด ๋ ํ์ํ ์ต์๊ฐ์ ๋ฌป๋ ๋ฌธ์ ์ด๋ฏ๋ก, DP ๊ฐ์ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ์๋ง ์์ ํ๋๋ก ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํด์ฃผ์๋ค.
class Solution:
def jump(self, nums: List[int]) -> int:
N = len(nums)
# Initialize
dp = [float("inf")] * N
dp[-1] = 0
for i in range(len(nums)-2,-1,-1):
for j in range(i+1, min(i+nums[i]+1, N)):
dp[i] = min(dp[i], 1 + dp[j])
return dp[0]
'IN DEPTH CAKE > Supercoder' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++/LeetCode-Array] 162. Find Peak Element (1) | 2024.05.02 |
---|---|
[์ฝ๋ฉ/LeetCode150-(11)] 274. H-Index (2) | 2023.08.23 |
[์ฝ๋ฉ/LeetCode150-(9)] 55. Jump Game (13) | 2023.08.22 |
[์ฝ๋ฉ/LeetCode150-(8)] Best Time to Buy and Sell Stock II (122) (0) | 2023.08.22 |
[์ฝ๋ฉ/LeetCode150-(7)] Best Time to Buy and Sell Stock (121) (0) | 2023.08.20 |