Developer with Cat
© 2021. All rights reserved.
#[leetcode][45] Jump Game II 문제풀기!
처음 인덱스에서 마지막 인덱스에 도달하려면 몇 번 점프해야할까? 해당 인덱스에서 최대 얼마나 뛸 수 있는지는 알려줄게!
자세한 문제 설명과 릿코드 홈페이지 참고. 문제풀러가기
주어지는 인풋의 길이가 최대 30,000 이기 때문에 최소 O(nlgn) 기법을 써야 합니다!
저는 탐욕 기법으로 해당 인덱스에서 뛰었을 때 최대로 가는 놈만 골라서 그냥 뛰었습니다!
var jump = function (nums) { if (nums.length === 1) return 0; if (nums[0] >= nums.length - 1) return 1; let nowPos = 0; let count = 0; for (let i = 0; i < nums.length; ) { let maxNum = 0; for (let dist = 1; dist <= nums[i]; dist++) { if (maxNum <= dist + nums[i + dist] || dist + i >= nums.length - 1) { maxNum = dist + nums[i + dist]; nowPos = i + dist; } } i = nowPos; count++; if (nowPos >= nums.length - 1) { break; } } return count; };
왜 hard 난이도 인지 알 수 없는 문제!! 끄앗!!!