Skip to content

Commit c78c100

Browse files
committed
add solution of unique-paths
1 parent 6316472 commit c78c100

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

โ€Žunique-paths/jinhyungrhee.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
class Solution {
2+
int count;
3+
public int uniquePaths(int m, int n) {
4+
/**
5+
1. dfs + backtrack => Time Limit Exceeded
6+
*/
7+
//boolean[][] visited = new boolean[m][n];
8+
//dfs(visited, 0, 0, m, n);
9+
10+
/**
11+
2. DP
12+
- ์ €์žฅ๋˜๋Š” ๊ฐ’์€ ํ•ด๋‹น ์œ„์น˜๊นŒ์ง€ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” '๊ณ ์œ ํ•œ ๊ฒฝ๋กœ์˜ ์ˆ˜'
13+
*/
14+
int[][] dp = new int[m][n];
15+
16+
for (int i = 0; i < m; i++) {
17+
dp[i][0] = 1;
18+
}
19+
for (int j = 0; j < n; j++) {
20+
dp[0][j] = 1;
21+
}
22+
23+
for (int i = 1; i < m; i++) {
24+
for (int j = 1; j < n; j++) {
25+
// ์ด์ „์— ์™”๋˜ ๊ฐ’๋“ค์„ ๋”ํ•จ(์œ„, ์™ผ์ชฝ)
26+
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
27+
}
28+
}
29+
30+
return dp[m-1][n-1];
31+
}
32+
33+
/**
34+
1. DFS + backtrack
35+
*/
36+
/**
37+
public void dfs(boolean[][] visited, int x, int y, int m, int n) {
38+
39+
if (x == m - 1 && y == n - 1) {
40+
count++;
41+
return;
42+
}
43+
44+
45+
visited[x][y] = true;
46+
47+
// ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ + backtrack
48+
if (y + 1 < n && !visited[x][y + 1]) {
49+
dfs(visited, x, y + 1, m , n);
50+
}
51+
52+
// ์•„๋ž˜์ชฝ์œผ๋กœ ์ด๋™ + backtrack
53+
if (x + 1 < m && !visited[x + 1][y]) {
54+
dfs(visited, x + 1, y, m, n);
55+
}
56+
57+
visited[x][y] = false;
58+
}
59+
*/
60+
}

0 commit comments

Comments
ย (0)