Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions leetcode3/정진영/1219. Path with Maximum Gold
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/**
* @param {number[][]} grid
* @return {number}
*/
var getMaximumGold = function(grid) {
let ans = 0;
let m = grid.length;
let n = grid[0].length;

function dfs(i, j) {
if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] === 0) {
return 0;
}

let gold = grid[i][j];

grid[i][j] = 0;

// 상하좌우 중 가장 많은 금을 얻는 경로
let up = dfs(i - 1, j);
let down = dfs(i + 1, j);
let left = dfs(i, j - 1);
let right = dfs(i, j + 1);

// 다시 원래대로 돌려놓기
grid[i][j] = gold;

return gold + Math.max(up, down, left, right);
}

// 모든 칸을 시작점으로 해보기
for (let i = 0; i < m; i++) {
for (let j = 0; j < n; j++) {
if (grid[i][j] !== 0) {
ans = Math.max(ans, dfs(i, j));
}
}
}

return ans;
};
30 changes: 30 additions & 0 deletions leetcode3/정진영/543. Diameter of Binary Tree
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var diameterOfBinaryTree = function(root) {
let count = 0;

function dfs(node){
if (node == null) return 0;

let left = dfs(node.left);
let right = dfs(node.right);

count = Math.max(count, left+right);

return Math.max(left, right) + 1;
}

dfs(root);

return count;
};
Loading