191020 TIL Promise && BFS

» 1.5막, TIL (Today I Learned)

Promise


출처

스터디에서 오랜만에 비동기를 복습했다.
promise는 좀 더 공부해야겠다.
오늘 알게된 것:

  • job queue? microtask queue? 가 task queue보다 우선한다.
  • await 은 .then 과 동일

BFS

스터디에서 요새 트리를 공부하고 있다. 트리 관련 알고리즘은 거의다 재귀로 푸는 게 많아서 감 잡기가 영 어렵다.
오늘은 BFS 관련 문제를 풀었다.

leetcode - 102. Binary Tree Level Order Traversal

내 풀이:

var levelOrder = function(root) {
    if (root === null) return [];
    
    let result = [[root.val]];
    let parents = [];
    let children = [];
    let tempValue = [];
    
    function hasChildren(node, arr) {
        if(node.left !== null) arr.push(node.left);
        if(node.right !== null) arr.push(node.right);
    }
    
    hasChildren(root, parents);
    
    while(parents.length > 0) {
        let node = parents.shift();
        hasChildren(node, children);
        tempValue.push(node.val);
        if(parents.length === 0) {
            result.push(tempValue);
            tempValue = [];
        }
        if(parents.length == 0 && children.length !== 0) {
            parents = [...children];
            children = [];
        }
    }
    
    return result;
};

리팩토링 하기! BFS도 복습하기!