๋ฌธ์
ํ์ด ๊ณผ์
์ด์ง ํธ๋ฆฌ๋ฅผ ์ค๋ฅธ์ชฝ์์ ๋ดค์ ๋ ๋ณด์ด๋ ๋
ธ๋๋ค์ ๋์ด์์ผ๋ก ์ถ๋ ฅํ๋ ๋ฌธ์ ์
๋๋ค.
์ด๋ฅผ ์ํด์ ๋ฐฉ๋ฌธ ์ ์ด์ ๊น์ง ๋ฐฉ๋ฌธํ ํธ๋ฆฌ ๋์ด ์ถ์ ์ ์ํด isVisitedLevel
์ด๋ผ๋ ๋ฐฐ์ด์ ์ ์งํ๋ฉฐ
๋ฐฉ๋ฌธ์ ์ค๋ฅธ์ชฝ ์์ -> ์ผ์ชฝ ์์
์์ผ๋ก ํ๋ ์ด์ ์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ๋ฒจ์ผ ๊ฒฝ์ฐ์๋ง ๋ฐฐ์ด์ push ํด์ค๋๋ค.
์ฝ๋
/**
* 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 rightSideView = function (root) {
const answer = [];
const isVisitedLevel = Array(8).fill(false); // log2 (100) == 6.xxx
function dfs(root, level) {
if (!root) {
return;
}
if (!isVisitedLevel[level]) {
isVisitedLevel[level] = true;
answer.push(root.val);
}
dfs(root.right, level + 1);
dfs(root.left, level + 1);
}
dfs(root, 1);
return answer;
};
๋ฐ์ํ
'๐ algorithm > leetcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LeetCode 120 - Triangle (Medium) (0) | 2021.04.13 |
---|---|
LeetCode 38 - Count and Say (Medium) (0) | 2021.04.13 |
LeetCode 344 - Reverse String (Easy) (0) | 2021.04.05 |
LeetCode 1578 - Minimum Deletion Cost to Avoid Repeating Letters (Medium) (0) | 2021.03.08 |
LeetCode 904 - Fruit Into Baskets (Medium) (0) | 2021.03.08 |
๐ฌ ๋๊ธ