Skip to content

Commit e4aa7d0

Browse files
authored
Create 1219. Path with Maximum Gold
1 parent c8b4b8f commit e4aa7d0

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/**
2+
* @param {number[][]} grid
3+
* @return {number}
4+
*/
5+
var getMaximumGold = function(grid) {
6+
let ans = 0;
7+
let m = grid.length;
8+
let n = grid[0].length;
9+
10+
function dfs(i, j) {
11+
if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] === 0) {
12+
return 0;
13+
}
14+
15+
let gold = grid[i][j];
16+
17+
grid[i][j] = 0;
18+
19+
// 상하좌우 중 가장 많은 금을 얻는 경로
20+
let up = dfs(i - 1, j);
21+
let down = dfs(i + 1, j);
22+
let left = dfs(i, j - 1);
23+
let right = dfs(i, j + 1);
24+
25+
// 다시 원래대로 돌려놓기
26+
grid[i][j] = gold;
27+
28+
return gold + Math.max(up, down, left, right);
29+
}
30+
31+
// 모든 칸을 시작점으로 해보기
32+
for (let i = 0; i < m; i++) {
33+
for (let j = 0; j < n; j++) {
34+
if (grid[i][j] !== 0) {
35+
ans = Math.max(ans, dfs(i, j));
36+
}
37+
}
38+
}
39+
40+
return ans;
41+
};

0 commit comments

Comments
 (0)