320x100
문제 : https://leetcode.com/problems/path-with-maximum-gold/
grid 사이즈 조건이 n, m <= 15 이기 때문에 grid[x][y]가 0이 아닌 경우 그 지점을 시작점으로 DFS를 돌렸다.
DFS를 돌리면서 방문했던 지점은 다시 방문하면 안되므로 grid 값을 0으로 세팅해줬다.
DFS를 돌리면서 이때까지 들렸던 경로의 합이 최대가 되는 경우 정답이 된다.
시간복잡도는 특정 지점을 시작점으로 DFS를 돌릴 때 (NM)^2가 소요되고 0이아닌 지점을 시작점으로 하므로 NM 번 반복한다. 즉 총 시간복잡도는 O((NM)^3)
소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/1219.%20Path%20with%20Maximum%20Gold.cpp
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[leetcode][539] Minimum Time Difference (0) | 2019.12.08 |
---|---|
[leetcode][1266] Minimum Time Visiting All Points (0) | 2019.12.07 |
[leetcode][1186] Maximum Subarray Sum with One Deletion (0) | 2019.10.05 |
[leetcode][1209] Remove All Adjacent Duplicates in String II (0) | 2019.10.03 |
[leetcode][1207] Unique Number of Occurrences (0) | 2019.10.02 |
댓글