- 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;
}
};