IN DEPTH CAKE (40) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [c++/LeetCode-Stack] 1047. Remove All Adjacent Duplicates In String ๋์ด๋: EASYํค์๋: Stack ๋ฌธ์ ์๋ฌธ์ ์์ด ์ํ๋ฒณ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง๋๋ค. ์ค๋ณต ์ ๊ฑฐ๋ ์๋ก ์ธ์ ํ๊ณ ๊ฐ์ ๊ธ์ ๋ ๊ฐ๋ฅผ ์ ํํ๊ณ ์ ๊ฑฐํ๋ ๊ฒ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.`s` ์์ ๋ ์ด์ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ํ ์ ์์ ๋๊น์ง ๋ฐ๋ณตํ์ฌ ์ํํฉ๋๋ค.๋ชจ๋ ์ด๋ฌํ ์ค๋ณต ์ ๊ฑฐ๊ฐ ์๋ฃ๋ ํ ์ต์ข ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. ๋ต์ด ์ ์ผํจ์ด ์ฆ๋ช ๋ ์ ์์ต๋๋ค. ๋ฌธ์ ์๋ฌธ: https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/description/ ๋ฌธ์ ํ์ดclass Solution {public: string removeDuplicates(string s) { vector stack; for(a.. [c++/LeetCode-Stack] 155. MinStack ๋์ด๋: Mediumํค์๋: Stack ๋ฌธ์ ์์ ์๊ฐ ๋ด์ push, pop, top ๋ฐ ์ต์ ์์๋ฅผ ๊ฒ์ํ๋ ์คํ์ ์ค๊ณํ์ญ์์ค.MinStack ํด๋์ค๋ฅผ ๊ตฌํํ์ญ์์ค:- MinStack()๋ ์คํ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํฉ๋๋ค.- void push(int val)๋ ์์ val์ ์คํ์ ๋ฃ์ต๋๋ค.- void pop()์ ์คํ์ ๋งจ ์์ ์์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.- int top()์ ์คํ์ ๋งจ ์ ์์๋ฅผ ๊ฐ์ ธ์ต๋๋ค.- int getMin()์ ์คํ์์ ์ต์ ์์๋ฅผ ๊ฒ์ํฉ๋๋ค.๊ฐ ํจ์์ ๋ํด O(1) ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง ์๋ฃจ์ ์ ๊ตฌํํด์ผ ํฉ๋๋ค. ๋ฌธ์ ํ์ด - O(1) ์๊ฐ ๋ด์ min ๊ฐ์ ๋ฐํํ๊ธฐ ์ํด ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์จ์ min ๊ฐ์ ๋ฐํํ ์ ์๊ฒ min_stack์ ์ถ๊ฐ๋ก ์ ์ธํ๋ค.- min_stack ๊ฐ์ .. [c++/LeetCode-2DArray] 48. Rotate Image ๋์ด๋: Mediumํค์๋: Array ๋ฌธ์ ์ฃผ์ด์ง n x n 2์ฐจ์ ํ๋ ฌ์ ์ด๋ฏธ์ง๋ฅผ ๋ํ๋ ๋๋ค. ์ด ์ด๋ฏธ์ง๋ฅผ 90๋(์๊ณ ๋ฐฉํฅ)๋ก ํ์ ํ์ญ์์ค.์ด๋ฏธ์ง๋ฅผ ์ ์๋ฆฌ์์ (in-place) ํ์ ํด์ผ ํ๋ฏ๋ก ์ ๋ ฅ 2์ฐจ์ ํ๋ ฌ์ ์ง์ ์์ ํด์ผ ํฉ๋๋ค.๋ค๋ฅธ 2์ฐจ์ ํ๋ ฌ์ ํ ๋นํ์ฌ ํ์ ํ์ง ๋ง์ญ์์ค. ๋ฌธ์ ์๋ฌธ : https://leetcode.com/problems/rotate-image/description/ ๋ฌธ์ ํ์ด: ์ฐธ๊ณ ๋ก, ์ด๋ฒ ํฌ์คํ ์ผ๋ก ์ ๋ฆฌํ ์ฝ๋๋ ์๋๊ฐ ๋น ๋ฅธ solution์ ์๋๋ค. ๋ค๋ง ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ๊ณผ ๊ฐ์ด ์ ๋ฆฌํด๋ณด๋ฉด ์ข์ง ์์๊น ์ถ๋ค.์ผ๋จ ๋ฌธ์ ๋ฅผ ์ดํดํ๋ ๊ณผ์ ๋ถํฐ ์์ํด๋ณด๋ฉด, ๋ฌธ์ ์์ ์ ์ํ ์กฐ๊ฑด์ ๊ฐ๋จํ ์์๋ฅผ ํตํด ์ดํดํ๋ ๊ฒ์ด ํ์ํ๋ค. ๋๋ 3 x 3 ์์ ๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ๋ถ์ํ๋ค.. [c++/LeetCode-Array] 75. Sort Colors ๋์ด๋: Mediumํค์๋: Array ๋ฌธ์ ์ฃผ์ด์ง ๋ฐฐ์ด nums์๋ ๋นจ๊ฐ์, ํฐ์ ๋๋ ํ๋์์ผ๋ก ์์น ๋ n๊ฐ์ ๊ฐ์ฒด๊ฐ ์์ต๋๋ค. ์ด๋ค์ ๊ทธ ์๋ฆฌ์์ ์ ๋ ฌํ์ฌ ๋์ผํ ์์์ ๊ฐ์ฒด๊ฐ ์๋ก ์ธ์ ํ๋๋ก ๋ง๋ญ๋๋ค. ์ด๋ ์์์ ๋นจ๊ฐ์, ํฐ์ ๋ฐ ํ๋์ ์์๋ก ๋ฐฐ์ด๋ฉ๋๋ค.๋นจ๊ฐ์, ํฐ์ ๋ฐ ํ๋์์ ๊ฐ๊ฐ ๋ํ๋ด๊ธฐ ์ํด ์ ์ 0, 1 ๋ฐ 2๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ๋ ฌ ํจ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ๋ฌธ์ ์๋ฌธ: https://leetcode.com/problems/sort-colors/description/ ๋ฌธ์ ํ์ด ์์ ๊ฐ์๊ฐ ๋ง์ง ์์ผ๋๊น target ์์์ ๋ฐ๊ฟ๊ฐ๋ฉด์ sorting์ ํ์in_place ๋ก sorting์ ํด์ผํ๋๊น, swapํด์ผํ index๋ฅผ ๊ธฐ์ตํด๊ฐ๋ฉด์ swa.. [c++/LeetCode-Array] 56. Merge Intervals ๋์ด๋: Mediumํค์๋: Array ๋ฌธ์ ๋ฌธ์ ์๋ฌธ: https://leetcode.com/problems/merge-intervals/description/์ฃผ์ด์ง ๊ฐ๊ฒฉ ๋ฐฐ์ด์์, intervals[i] = [starti, endi]์ธ ๊ฐ๊ฒฉ๋ค์ด ์์ ๋, ๊ฒน์น๋ ๋ชจ๋ ๊ฐ๊ฒฉ์ ๋ณํฉํ๊ณ , ์ ๋ ฅ๋ ๋ชจ๋ ๊ฐ๊ฒฉ์ ํฌ๊ดํ๋ ๊ฒน์น์ง ์๋ ๊ฐ๊ฒฉ๋ค์ ๋ฐฐ์ด์ ๋ฐํํ์์ค. ๋ฌธ์ ํ์ด ๊ฒน์น๋ ๊ตฌ๊ฐ๋ค์ ํฉ์ณ์ฃผ๊ธฐ์ํด์, intervals ๋ฅผ start time ๊ธฐ์ค์ผ๋ก sortingํ๊ณ merge๋ฅผ ์งํํ๋ค. ๊ทธ๋ฌ๋ฉด sort๋ O(n log n)์ด ๋ณด์ฅ๋๊ณ , sorting ๋ array์ ๋ํด์ merge๋ง ํด์ฃผ๋ฉด ๋๋ฏ๋ก O(n). ์ต์ข ์ ์ผ๋ก O(n log n) ๋ณต์ก๋๋ก ํด๊ฒฐ. #include #include using na.. [c++/LeetCode-Array] 162. Find Peak Element ๋์ด๋: Mediumํค์๋: Array ๋ฌธ์ ๋ฌธ์ ์๋ฌธ: https://leetcode.com/problems/find-peak-element/description/ Peak ์์๋ ์ด์๋ณด๋ค ์๊ฒฉํ๊ฒ ํฐ ์์๋ฅผ ๋ปํ๋ค. 0๋ถํฐ ์์ธ์ด ์ง์ ๋ ์ ์ ๋ฐฐ์ด nums๊ฐ ์ฃผ์ด์ก์ ๋, Peak ์์๋ฅผ ์ฐพ๊ณ ํด๋น ์์ธ์ ๋ฐํํ๋ผ. ๋ฐฐ์ด์ ์ฌ๋ฌ ๊ฐ์ Peak์ด ํฌํจ๋์ด ์์ผ๋ฉด ์ด๋ค Peak์ ์์ธ์ด๋ ๋ฐํํ ์ ์๋ค.nums[-1] = nums[n] = -∞๋ก ๊ฐ์ฃผํด๋ ๋๋ค. ์ฆ, ๋ฐฐ์ด ์ธ๋ถ์ ์๋ ์ด์๋ณด๋ค ์์๋ ํญ์ ์๊ฒฉํ๊ฒ ํฌ๋ค๊ณ ๊ฐ์ฃผ๋๋ค.O(log n) ์๊ฐ ๋ด์ ์คํ๋๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ฑํด์ผ ํ๋ค. ๋ฌธ์ ํ์ด ๋ฌธ์ ์์ฒด๋ง ๋๊ณ ๋ณด๋ฉด Medium ๋์ด๋๋ ์๋๋ค. ๊ฐ์ฅ ์ฝ๊ฒ ์๊ฐํด๋ณด๋ฉด O(n) ์์ itera.. [Hello! c++] constexpr const char *์ ๋ํด์ ์๋ ํ์ธ์. ์ค๋ ํฌ์คํ ์์ ๋ค๋ฃฐ ๋ด์ฉ์ constexpr const char * ์ ๋ํ ์ด์ผ๊ธฐ์ ๋๋ค. ์ด ์์ํ๊ฒ ์๊ธด ๋ฌธ๋ฒ์ด ๋ง๋ ํํ์ธ์ง ์ด์ผ๊ธฐํด๋ณด๋๋ก ํ์ฃ . ์ฐ์ , constexpr์ด ๋ญ๊ฐ? constexpr๋ ์ผ๋ฐ์ ์ผ๋ก const์ ์ ์ฌํ์ง๋ง, const ๋ณด๋ค ์ข์ ๊ฐ๋ ์ผ๋ก ์ฌ๊ฒจ์ง๋๋ค. ์ผ๋จ ์์๋ ์ ์ constexpr๋ฅผ ์ฐ๋ฉด ๋ค์ ์ค๋ ๋ด์ฉ์ด const๋ผ๊ณ ์ ์ธํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ์ ์์ const์ ๋ค๋ฅผ ๊ฒ ์์ฃ . ๊ทธ๋ฌ๋ฉด ๋ ๊ฐ๊ฐ ๊ฐ์ ๊ฑด๊ฐ์? ์๋์ค, constexpr๋ const๋ก ๋์ฒด๊ฐ ๊ฐ๋ฅํ์ง๋ง, const๋ constexpr๋ก ํญ์ ๋์ฒด๋ ์ ์๋ ๊ฒ์ด ์๋๋๋ค. ๋ฌด์จ๋ง์ด๋๋ฉด, constexpr๋ const์ฒ๋ผ ๋ค์ ์ค๋ ์์ด ๋ณํ์ง ์๋ "constant (์์)"์์ ์๋ฏธํ๋ค๋.. [์ฝ๋ฉ/LeetCode150-(11)] 274. H-Index ๋ณธ ๊ธ์ LeetCode Top Interview 150์ ์ ๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ์์ฝํ๊ณ ์ด์ ๋ํ ๊ฐ์ธ์ ์ธ ํ์ด๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค. ๋ณธ ํฌ์คํ ์๋ฆฌ์ฆ๋ 150 list์ ์์๋ฅผ ๋ฐ๋ผ์ ๊ฒ์ฌ๋ฉ๋๋ค. ํ์ด ์ธ์ด๋ python3์ ์ฌ์ฉํฉ๋๋ค. ๋์ด๋: Medium ํค์๋: Array, Sorting ๋ฌธ์ ๋ฌธ์ ์๋ฌธ: https://leetcode.com/problems/h-index/description/?envType=study-plan-v2&envId=top-interview-150 ์ ์ ๋ฐฐ์ด citations ์ด ์ฃผ์ด์ง ๋ H-index๋ฅผ ๋ฐํํด๋ผ ๋ฌธ์ ํ์ด class Solution: def hIndex(self, citations: List[int]) -> int: citations.sort(reverse.. ์ด์ 1 2 3 4 5 ๋ค์