[PS] 99ν΄λ½ μ½ν μ€ν°λ 40μΌμ°¨ TIL (Unique Paths)
νκ·Έ: 99ν΄λ½, PS, TIL, λμ κ³νλ², μ½λ©ν μ€νΈμ€λΉ, νν΄99
μΉ΄ν κ³ λ¦¬: PS
λ¬Έμ
μ€λͺ
λ‘λ΄μ΄ 격μ μΌμͺ½ μλ¨λΆν° μ€λ₯Έμͺ½ νλ¨ λκΉμ§ μ΄λνλ κ²½μ°μ μλ₯Ό μ°Ύλ λ¬Έμ
νμ΄
- dp λ°°μ΄ μ μ : (i,j) μμμ λλ¬νλ κ²½λ‘μ μ
- (i,0) / (0,j) μ€μ κ²½μ°μ μκ° νλλΏμ΄λ―λ‘ λ―Έλ¦¬ μ±μ λλλ€.
- μ νμ λμΆ : λ¬Έμ μμ λ‘λ΄μ
μ€λ₯Έμͺ½
λλμλ
λ‘ λ°μ μμ§μ΄μ§ λͺ»νλ€κ³ νμΌλ―λ‘ (i, j) μμμ λλ¬νλ κ²½μ°μ μλ μΌμͺ½μμ μ€λ κ²½μ°μ μ + μμμ μ€λ κ²½μ°μ μλ‘ λνλΌ μ μλ€.- dp[i][j] = dp[i][j - 1] + dp[i - 1][j]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public int uniquePaths(int m, int n) {
int[][] dp = new int[m][n];
// (i, 0) μ±μ°κΈ°
for (int i = 0; i < m; i++) {
dp[i][0] = 1;
}
// (0, i) μ±μ°κΈ°
for (int i = 0; i < n; i++) {
dp[0][i] = 1;
}
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
}
}
return dp[m - 1][n - 1];
}
}
λκΈλ¨κΈ°κΈ°