Algorithm/문제풀이
[Leetcode] 62. Unique Paths 문제풀이
bluespacedev
2021. 9. 29. 21:31
https://leetcode.com/problems/unique-paths/
Unique Paths - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
문제 내용
로봇이 오른쪽 또는 아래로 한칸씩 이동하는데,
출발점부터 도착점까지 경로의 개수를 구하는 문제
Example 1:
Input: m = 3, n = 7
Output: 28
문제 풀이
1칸을 이동할 때 어디서 오는지 생각하면 금방 DP식을 구할 수 있다.
Dist[y][x] = Dist[y-1][x]+ Dist[y][x-1]
위에서 아래로 오거나 왼쪽에서 오른쪽으로 가는 경우의 수가 있기 때문에
해당 경우의 수를 더해주면 된다.
class Solution {
public:
int uniquePaths(int m, int n) {
vector<vector<int>> dist(m, vector<int>(n, 0));
dist[0][0] = 1;
for (int y = 1; y < m; ++y) {
dist[y][0] = dist[y-1][0];
}
for (int x = 1; x < n; ++x) {
dist[0][x] = dist[0][x-1];
}
for (int y = 1; y < m; ++y) {
for (int x = 1; x < n; ++x) {
dist[y][x] = dist[y-1][x] + dist[y][x-1];
}
}
return dist[m-1][n-1];
}
};