๐ algorithm/leetcode93 LeetCode 136 - Single Number (Easy) ๋ฌธ์ LeetCode - 104๋ฒ ํ์ด ๊ณผ์ ํ๋์ ์ซ์๋ง 1๊ฐ๊ฐ ์กด์ฌํ๊ณ ๋๋จธ์ง ์ซ์๋ค์ 2๊ฐ์ฉ ์กด์ฌํ๋ ๋ฐฐ์ด์์ 1๊ฐ ์กด์ฌํ๋ ์ซ์๋ฅผ single number ๋ผ๊ณ ํ์ ๋ ํด๋น ์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ ๋๋ค. ๋ฌธ์ ์กฐ๊ฑด์์ O(N) ์ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ฉํ์ง ์๊ณ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผํฉ๋๋ค. ์ด๋ฅผ ์ํด์ ๋นํธ ์ฐ์ฐ์ ์ค์์ xor ๋ฅผ ํ์ฉํ๋๋ก ํฉ๋๋ค. xor ์ฐ์ฐ์ ์๋ก ๋ค๋ฅธ ๋นํธ์์๋ง 1์ด๊ณ ๋๋จธ์ง๋ 0์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์ซ์๋ผ๋ฆฌ xor ์ ํ๋ฉด 0์ด ๋ฉ๋๋ค. ๋ฐ๋ผ์ single number ๋ฅผ ์ ์ธํ ๋ชจ๋ ์๋ 2๊ฐ์ฉ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ xor ๊ฒฐ๊ณผ 0์ด ๋๊ณ 0 ^ single number = single number ๋ก ๊ตฌํ ์ ์์ต๋๋ค. ์ฝ๋ /** * @param {number[]} nums .. 2021. 3. 3. LeetCode 104 - Maximum Depth of Binary Tree (Easy) ๋ฌธ์ LeetCode - 104๋ฒ ํ์ด ๊ณผ์ ์ด์ง ํธ๋ฆฌ์ ๋์ด ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค. ๊ฐ๋จํ๊ฒ DFS ๋ฅผ ์ํํด์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ์ค์์ ๋์ height ๋ฅผ ์ ํํ๋๋ก ํ์ต๋๋ค. ์ฝ๋ /** * 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 maxD.. 2021. 3. 3. LeetCode 102 - Binary Tree Level Order Traversal (Medium) ๋ฌธ์ LeetCode - 102๋ฒ ํ์ด ๊ณผ์ ์ด์ง ํธ๋ฆฌ์ level order ํ์์ ๊ตฌํํ๋ ๋ฌธ์ ์ ๋๋ค. ๋ํ์ ์ธ BFS ๋ฌธ์ ๋ก ๋ฃจํธ ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ๋ฃจํธ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํด์ฃผ๋ฉฐ ํ์์ ์ํํ๋ฉด ๋ฉ๋๋ค. ์ด๋ ์ฃผ์ํ ์ ์ ๋ฌธ์ ์ถ๋ ฅ ํ์์ด level ์ ์๋ ๋ชจ๋ ๋ ธ๋๋ฅผ ํ๋๋ก ๋ฌถ์ด์ ๋ฐฐ์ด๋ก ์ถ๊ฐํด์ผํ๋ฏ๋ก ๊ฐ๊ฐ์ BFS ๋จ๊ณ๋ง๋ค ํ์ฌ ํ์ ์กด์ฌํ๋ ๋ชจ๋ ๋ ธ๋์ ๊ฐ์ ๋งํผ ๋ฃจํ๋ฅผ ๋๋ฉฐ ์์ ๋ ธ๋๋ค์ ํ์ํด์ผํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ง์น ๋ฐฑ์ค์ ํ ๋งํ ๋ฌธ์ ์ ๋น์ทํ ๋ฐฉ์์ด์ฃ . ์ด๋ ๊ฒ ํด์ผ ํ์ฌ ๋ ๋ฒจ์ ์กด์ฌํ๋ ๋ชจ๋ ๋ ธ๋๋ฅผ ํจ๊ป ๋ฐฐ์ด๋ก ๋ฌถ์ด์ค ์ ์์ต๋๋ค. ์ฝ๋ /** * Definition for a binary tree node. * function TreeNode(val, left, righ.. 2021. 3. 3. LeetCode 617 - Merge Two Binary Trees (Easy) ๋ฌธ์ LeetCode - 617๋ฒ ํ์ด ๊ณผ์ ๋ ๊ฐ์ ์ด์ง ํธ๋ฆฌ๋ฅผ ํฉ์น๋ ์ฐ์ฐ์ ์ํํ๋ ๋ฌธ์ ์ ๋๋ค. ์ง๊ด์ ์ผ๋ก ์๊ฐํ์๋๋ ์ฌ์ด๊ฑฐ ๊ฐ์๋๋ฐ ์๊ฐ๋ณด๋ค ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ตฌํํด์ผ ๋ช ํํ ์ง ๋ง์ ๊ณ ๋ฏผ์ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ merge ๋ผ๋ ํจ์๋ฅผ ์ฌ๊ท์ ์ผ๋ก ํธ์ถํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํ์ต๋๋ค. ์ฐ์ merge ์ ๊ธฐ์ค์ด ๋๋ ํธ๋ฆฌ๋ฅผ main, ๋๋จธ์ง๋ฅผ sub ๋ก ๋๋ ๋ค์ ๋ ํธ๋ฆฌ ๋ชจ๋ ํ์ฌ ๋ฃจํธ ๋ ธ๋๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ main ์ ๊ฐ์ ๋ํ์ต๋๋ค. ๋ค์ ์ฌ๊ทํธ์ถ ์ ์ ๋จผ์ ์๋ธํธ๋ฆฌ๊ฐ ์กด์ฌํ๋์ง ํ์ธํ์๊ณ ๋ ํธ๋ฆฌ ๋ชจ๋ ๊ฐ๊ฐ ์ผ์ชฝ ํน์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๊ฐ ์กด์ฌํ ๋๋ง DFS ๋ฅผ ์ํํ๊ณ ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ ๋ณ๋์ ์ฒ๋ฆฌ๋ฅผ ํด์คฌ์ต๋๋ค. ์ฌ๊ธฐ์ ๋ณ๋์ ์ฒ๋ฆฌ๋ main ์ ์ผ์ชฝ(์ค๋ฅธ์ชฝ) ์๋ธํธ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์๋๋ฐ sub ์.. 2021. 3. 3. LeetCode 98 - Validate Binary Search Tree (Medium) ๋ฌธ์ LeetCode - 98๋ฒ ํ์ด ๊ณผ์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ํธ๋ฆฌ๊ฐ ์ด์ง ๊ฒ์ ํธ๋ฆฌ ์ ์๊ตฌ ์ฌํญ์ ๋ง๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋์ง ํ๋จํ๋ ๋ฌธ์ ์ ๋๋ค. ์ด์ง ๊ฒ์ ํธ๋ฆฌ ๋ ๋ฃจํธ ๋ ธ๋๊ฐ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๋ณด๋ค ์ปค์ผํ๊ณ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๋ณด๋ค ์์์ผํฉ๋๋ค. ๋ฐ๋ผ์ minMax ๋ผ๋ ํจ์๋ฅผ ํตํด DFS ๋ฅผ ์ํํ๋ฉฐ ํ์ฌ ๋ฃจํธ ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋น ์๋ธํธ๋ฆฌ์ ๊ฐ์ฅ ์์ ๊ฐ๊ณผ ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ฐํํ๋๋ก ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ค ํ๊ณ ๋์ ๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ฒ์ ๋ณด๋ ๊ทธ๋ฅ ์ค์ ์ํ ๋ฅผ ํ ๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ด์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ด ๋ ๊ตฌํํ๊ธฐ ์ฝ๊ณ ๋ช ํํ ๊ฑฐ ๊ฐ์ต๋๋ค. ์ฝ๋ /** * Definition for a binary tree node. * function TreeNode(val, left, righ.. 2021. 3. 3. LeetCode 130 - Surrounded Regions (Medium) ๋ฌธ์ LeetCode - 130๋ฒ ํ์ด ๊ณผ์ X ๋ก ๋๋ฌ์ธ์ธ O ๋ถ๋ถ์ ๋ชจ๋ ๋ค์ง์์ ๋ ์ต์ข ์ ์ผ๋ก ์ด๋ค ํํ๋ฅผ ๊ฐ์ง board ๊ฐ ๋๋์ง ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค. ์ด๋ ํ๊ฐ์ง ์ฃผ์ํ ์ ์ ๋๋ฌ์ธ๋ ํ ๋๋ฆฌ๊ฐ board ์ ๊ฒฝ๊ณ ์์ ์กด์ฌํ๋ฉด ์๋๋ค๋ ์ ์ ๋๋ค. BFS ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์์ผ๋ฉฐ ํ์ฌ ์ขํ์์ ์ํ์ข์ฐ๋ก ์ด๋ํ์ ๋ board ๋ฅผ ๋ฒ์ด๋์ง ์๋์ง ์ฒดํฌํด์ ์กฐ๊ฑด์ ๊ฒ์ฌํด์คฌ์ต๋๋ค. ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋ฐ์ํ๋ ์ด์ ์ค ํ๋๋ ES6 ์ Map ์๋ฃ๊ตฌ์กฐ์ ๊ด๋ จ๋ ๋ด์ฉ์ ๋๋ค. ์ฒ์์๋ ๋ฐฉ๋ฌธ ์ขํ๋ฅผ ๋ฐฐ์ด ํค๊ฐ์ผ๋ก Map ์ ์ ์ฅํ๋ ค๊ณ ํ๋๋ฐ ํ ์คํธํด๋ณด๋๊น ํค ๊ฐ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํ์ง ์์์ต๋๋ค. (๋ง์ฝ ์ด๋ ๊ฒ ํ๊ณ ์ถ์ผ๋ฉด ๋ฐฐ์ด์ ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ ๋ค ํ ๋น๋ ๋ณ์๊ฐ์ ํ์ฉํด ํค๋ก ์ง์ .. 2021. 3. 3. ์ด์ 1 ยทยทยท 6 7 8 9 10 11 12 ยทยทยท 16 ๋ค์