[LeetCode] Unique Paths Java)
https://leetcode.com/problems/unique-paths/description/
입력 : 첫번째 줄-부등호 문자의 개수 k
두번째 줄-k개의 부등호 기호 (공백으로 구분)
출력 : 첫번째 줄-부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수
두번째 줄-부등호 관계를 만족하는 k+1 자리의 최소 정수
O(n!)
dp
구현
class Solution {
public int uniquePaths(int m, int n) {
// dp 배열 생성
int[][] dp = new int[m][n];
// 첫 번째 열의 모든 위치에 1을 설정 (오직 아래로 이동 가능)
for (int i = 0; i < m; i++) {
dp[i][0] = 1;
}
// 첫 번째 행의 모든 위치에 1을 설정 (오직 오른쪽으로 이동 가능)
for (int j = 0; j < n; j++) {
dp[0][j] = 1;
}
// dp 배열을 채움
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
// 위에서 오는 경로 수 + 왼쪽에서 오는 경로 수
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
// 오른쪽 하단의 경로 수 반환
return dp[m - 1][n - 1];
}
}