Skip to content

Commit 009270c

Browse files
committed
feat(soobing): week7 > unique-paths
1 parent fde5f42 commit 009270c

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

โ€Žunique-paths/soobing.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**
2+
* ๋ฌธ์ œ ์„ค๋ช…
3+
* - mํ–‰๊ณผ n์—ด์˜ ๊ทธ๋ž˜ํ”„์—์„œ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ๊ฐ€์ง“์ˆ˜
4+
* - ์•„๋ž˜, ์˜ค๋ฅธ์ชฝ์œผ๋กœ๋งŒ ์ด๋™ ๊ฐ€๋Šฅ
5+
*
6+
* ์•„์ด๋””์–ด
7+
* 1) DP
8+
* - ์ฒซ๋ฒˆ์งธ ํ–‰, ์ฒซ๋ฒˆ์งธ ์—ด์„ ์ œ์™ธํ•˜๊ณ ๋‚˜์„œ๋Š” (m - 1)๋ฒˆ ์•„๋ž˜ + (n - 1)๋ฒˆ ์˜ค๋ฅธ์ชฝ์„ ๋”ํ•œ ๊ฐ’์ด ํ˜„์žฌ ์œ„์น˜์— ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž„.
9+
* - ์ „๋ถ€ ๊ฑฐ์นœ๋‹ค์Œ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์ •๋‹ต
10+
* 2) ์กฐํ•ฉ -> factorial์˜ ๊ฒฝ์šฐ Maximum call stack size exceed ๋ฐœ์ƒ
11+
* - ์•„๋ž˜๋กœ ์ด๋™ ๊ฐ€๋Šฅํ•œ ์ˆ˜(m-1), ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ ๊ฐ€๋Šฅํ•œ ์ˆ˜ (n-1)์˜ ์กฐํ•ฉ
12+
* - (m + n - 2)! / (m - 1)! * (n - 1)!
13+
*/
14+
function uniquePaths(m: number, n: number): number {
15+
const dp = Array(m).fill(Array(n).fill(1));
16+
17+
for (let r = 1; r < m; r++) {
18+
for (let c = 1; c < n; c++) {
19+
dp[r][c] = dp[r - 1][c] + dp[r][c - 1];
20+
}
21+
}
22+
23+
return dp[m - 1][n - 1];
24+
}
25+
26+
/**
27+
* factorial ํ’€์ด -> ์—๋Ÿฌ๋ฐœ์ƒ
28+
*
29+
function uniquePaths(m: number, n: number): number {
30+
function factorial(n: number) {
31+
if (n === 1) return 1;
32+
33+
return n * factorial(n - 1);
34+
}
35+
36+
return factorial(m + n - 2)! / (factorial(m - 1) * factorial(n - 1));
37+
}
38+
*/

0 commit comments

Comments
ย (0)