Skip to content

Commit 7c253cd

Browse files
committed
add Unique Paths solution
1 parent 4f193b4 commit 7c253cd

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

unique-paths/HoonDongKang.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/**
2+
* [Problem]: [62] Unique Paths
3+
* (https://leetcode.com/problems/unique-paths/description/)
4+
*/
5+
6+
function uniquePaths(m: number, n: number): number {
7+
//시간복잡도 O(2^(m*n))
8+
//공간복잡도 O(m*n)
9+
// Time Limit Exceeded
10+
function dfsFunc(m: number, n: number): number {
11+
let result: number = 0;
12+
function dfs(row: number, col: number) {
13+
if (row === m - 1 && col === n - 1) result++;
14+
if (row + 1 < m) dfs(row + 1, col);
15+
if (col + 1 < n) dfs(row, col + 1);
16+
}
17+
18+
dfs(0, 0);
19+
return result;
20+
}
21+
22+
//시간복잡도 O(m*n)
23+
//공간복잡도 O(m*n)
24+
function memoizationFunc(m: number, n: number): number {
25+
let memo = new Map<string, number>();
26+
27+
function dfs(row: number, col: number) {
28+
const key = `${row}|${col}`;
29+
30+
if (memo.has(key)) return memo.get(key);
31+
if (row === m - 1 && col === n - 1) return 1;
32+
if (row >= m || col >= n) return 0;
33+
34+
const result = dfs(row + 1, col) + dfs(row, col + 1);
35+
36+
memo.set(key, result);
37+
return result;
38+
}
39+
40+
return dfs(0, 0);
41+
}
42+
//시간복잡도 O(m*n)
43+
//공간복잡도 O(m*n)
44+
function dpFunc(m: number, n: number): number {
45+
let dp: number[][] = Array.from({ length: m }, () => Array(n).fill(1));
46+
47+
for (let i = 1; i < m; i++) {
48+
for (let j = 1; j < n; j++) {
49+
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
50+
}
51+
}
52+
53+
return dp[m - 1][n - 1];
54+
}
55+
//시간복잡도 O(m*n)
56+
//공간복잡도 O(n)
57+
function optimizationFunc(m: number, n: number): number {
58+
let dp: number[] = new Array(n).fill(1);
59+
for (let i = 1; i < m; i++) {
60+
let left = 1;
61+
for (let j = 1; j < n; j++) {
62+
dp[j] += left;
63+
left = dp[j];
64+
}
65+
}
66+
67+
return dp[n - 1];
68+
}
69+
}

0 commit comments

Comments
 (0)