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
23 changes: 23 additions & 0 deletions doitchuu/AddBinary.js
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 처음에 푸신거처럼 parseInt로 했었는데 길이의 한계가 있다해서 찾아보니까 BigInt로 변환하면 된다고 하드라구용 근데 실전에서 이렇게 풀어도 되려나 싶긴하네요ㅠ 그래도 일단 테스트 통과하는게 우선이니

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
var addBinary = function(a, b) {
let i = a.length - 1;
let j = b.length - 1;
let carry = 0;
let result = "";

while (i >= 0 || j >= 0 || carry) {
let sum = carry;

if (i >= 0) sum += Number(a[i--]);
if (j >= 0) sum += Number(b[j--]);

result = String(sum % 2) + result;
carry = Math.floor(sum / 2);
}

return result;
};
29 changes: 29 additions & 0 deletions doitchuu/DiameterOfBinaryTree.js
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Diameter of Binary Tree도 DFS로 높이를 구하면서 diameter를 갱신하는 전형적인 O(n) 풀이로 잘 작성해주신 것 같아요. 기능적으로는 큰 수정 포인트는 없어 보이고, 전반적으로 코드가 간결해서 읽기 좋았습니다!

Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/**
* 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 diameter = 0;

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

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

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

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

dfs(root);
return diameter;
};
Loading