Skip to content

Commit a709d95

Browse files
committed
add: solve DaleStudy#276 Jump Game with ts
1 parent e30b690 commit a709d95

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

โ€Žjump-game/Yjason-K.ts

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* ๋ฐฐ์—ด์˜ ๊ฐ ์ธ๋ฑ์Šค์—์„œ ๊ฐ€๋Šฅํ•œ ์ ํ”„๋ฅผ ํ†ตํ•ด ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ
3+
* @param {number[]} nums - ๊ฐ ์ธ๋ฑ์Šค์—์„œ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ฑฐ๋ฆฌ
4+
* @returns {boolean} - ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด false
5+
*
6+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: O(2^n)
7+
* - DFS ๊ธฐ๋ฐ˜์˜ ํƒ์ƒ‰์ด๋ฏ€๋กœ ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒฝ์šฐ ํƒ์ƒ‰
8+
*
9+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n) (์žฌ๊ท€ ํ˜ธ์ถœ ์Šคํƒ๊ณผ ๋ฐฉ๋ฌธ ๋ฐฐ์—ด ์‚ฌ์šฉ)
10+
* - `visited` ๋ฐฐ์—ด์ด nums.length ํฌ๊ธฐ๋ฅผ ์ฐจ์ง€
11+
*/
12+
function canJump(nums: number[]): boolean {
13+
const visited = new Array(nums.length).fill(false);
14+
15+
const dfs = (idx: number): boolean => {
16+
if (idx >= nums.length - 1) return true; // ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค ์ด์ƒ ๋„๋‹ฌํ•˜๋ฉด ์„ฑ๊ณต
17+
if (visited[idx]) return false; // ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ๊ฒฝ์šฐ ์ค‘๋ณต ๋ฐฉ๋ฌธ ๋ฐฉ์ง€
18+
19+
visited[idx] = true; // ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ
20+
21+
for (let i = 1; i <= nums[idx]; i++) { // ํ˜„์žฌ ์œ„์น˜์—์„œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ ํ”„ ํƒ์ƒ‰
22+
if (dfs(idx + i)) return true;
23+
}
24+
25+
return false;
26+
}
27+
28+
return dfs(0); // 0๋ฒˆ ์ธ๋ฑ์Šค์—์„œ ์‹œ์ž‘
29+
}

0 commit comments

Comments
ย (0)