๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€72

[Leetcode] Min Stack 155. Min Stack ๋ฌธ์ œ ์š”์•ฝ: push(), pop(), top(), getMin()์„ ์ง€์›ํ•˜๋Š” ์Šคํƒ์„ ๋””์ž์ธํ•˜๋ผ. getMin()์€ ์Šคํƒ ๋‚ด ์ตœ์†Œ ์›์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์ƒ์ˆ˜ ์‹œ๊ฐ„์— ์™„๋ฃŒ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ƒ๊ฐ 1: getMin()์„ ์ƒ์ˆ˜ ์‹œ๊ฐ„์— ํ•˜๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ. push() ํ•  ๋•Œ๋งˆ๋‹ค min์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์ง€๋งŒ, min์ด pop() ๋  ๊ฒฝ์šฐ ์ง์ „์˜ min ๊ฐ’์œผ๋กœ roll back ํ•ด์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ง์ „์˜ min ๊ฐ’์„ ๋‹ค ์ €์žฅํ•ด๋‘˜ ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ (๋ฒกํ„ฐ๋ฅผ ์ด์šฉํ•ด ์ €์žฅํ•ด๋‘˜ ์ˆ˜๋Š” ์žˆ๊ฒ ์ง€๋งŒ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Œ) ๊ทธ๋ƒฅ ๋ฒกํ„ฐ ํ•˜๋‚˜์™€ ์…‹ ํ•˜๋‚˜๋ฅผ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์ƒ๊ฐ 2: ๋ฒกํ„ฐ ํ•˜๋‚˜์™€ ์…‹ ํ•˜๋‚˜๋ฅผ ๋ชจ๋‘ ์“ฐ๋Š” ๊ฒŒ ๋น„ํšจ์œจ์ ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ struct Node๋ฅผ ๋งŒ๋“ค๊ณ  s.. 2020. 6. 28.
๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ 1) ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ณ  2) ์ž‘์€ ๋ฌธ์ œ์˜ ๋‹ต์ด ํฐ ๋ฌธ์ œ์—์„œ๋„ ๋™์ผํ•  ๋•Œ ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋Š” ํ•œ ๋ฒˆ๋งŒ ํ’€๋„๋ก Memoization ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ฐ€๋ น ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๊ตฌํ•  ๋•Œ fib(15)๋ฅผ ๊ตฌํ•˜๋ ค๋ฉด fib(14) + fib(13)์„ ๊ตฌํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋™์ผํ•œ ๊ณ„์‚ฐ์„ ๋งค์šฐ ์—ฌ๋Ÿฌ ๋ฒˆ ํ•ด์•ผ ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•œ ๋ฒˆ ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ๋ฐฐ์—ด์— memo ํ•ด ๋‘๊ณ , ๋ฐฐ์—ด์— memo ํ•ด ๋‘” ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ฐ’์ด ์—†๋‹ค๋ฉด (์ฒ˜์Œ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ) ๊ณ„์‚ฐํ•˜๊ณ  memo ํ•˜๋ฉด ๋œ๋‹ค. ์ถœ์ฒ˜๋Š” ์‚ฌ์ง„ ์•„๋ž˜ ๋งํฌ 2020. 6. 24.
์ตœ๋Œ€ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ (์•„๋ž˜ ์ชฝ์— update ์žˆ์Œ) ์™œ ์ด ๋ฌธ์ œ๋Š” ๋ณผ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด๊ฑธ๊นŒ? ์ด ์˜์ƒ๋งŒ ๋„ค ๋‹ค์„ฏ ๋ฒˆ์€ ๋ณธ ๊ฒƒ ๊ฐ™๋‹ค. ์ปจ์…‰์€: "์ˆ˜์˜ ํ•ฉ์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ตฌํ•˜๋Š”๋ฐ, ํ•ฉ์ด ์Œ์ˆ˜๋ฉด 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋‹ค์Œ ์ˆ˜๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค." ํ•ฉ์ด ์Œ์ˆ˜์ผ ๋•Œ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์€, ์ „์ฒด ๋ฐฐ์—ด ์ค‘ ์–‘์ˆ˜ ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์–‘์ˆ˜๊ฐ€ ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ ์žˆ๋‹ค๋ฉด ๊ทธ ์–‘์ˆ˜ ํ•˜๋‚˜๋งŒ ๊ฐ€์ง€๋Š” ๊ฒŒ (์Œ์ˆ˜ ํ•ฉ๋ณด๋‹ค) ์ด๋“์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋˜ ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋นˆํ‹ˆ์ด ์ƒ๊ธฐ๋Š”๋ฐ, ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ˆ˜๊ฐ€ ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ์— 0์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๊ฒฝ์šฐ๋Š” ๋ฐฐ์—ด์— ์žˆ๋Š” ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ (์Œ)์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฌผ๋ก  0์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ ํ•ญ์ƒ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ˆ˜๊ฐ€ ์Œ์ˆ˜์ธ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ˆ˜๊ฐ€ 0์ผ ๋•Œ, ํ˜น์€ 0๊ณผ ์Œ์ˆ˜๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ์—๋„ 0์„ .. 2020. 6. 23.
Kruskal / Prim Algorithm (ํฌ๋ฃจ์Šค์นผ / ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜) https://www.youtube.com/watch?v=LQ3JHknGy8c : MST ๊ฐœ๋…๊ณผ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช… (์œ ํˆฌ๋ฒ„ ๋™๋นˆ๋‚˜) https://www.youtube.com/watch?v=AMByrd53PHM : ํฌ๋ฃจ์Šค์นผ์— ์‚ฌ์šฉ๋˜๋Š” union-find ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช… (์œ ํˆฌ๋ฒ„ ๋™๋นˆ๋‚˜) https://www.youtube.com/watch?v=71UQH7Pr9kU : ํฌ๋ฃจ์Šค์นผ 2๋ถ„์งœ๋ฆฌ ์˜์ƒ https://www.youtube.com/watch?v=cplfcGZmX7I : ํ”„๋ฆผ 2๋ถ„์งœ๋ฆฌ ์˜์ƒ https://stackoverflow.com/questions/1195872/when-should-i-use-kruskal-as-opposed-to-prim-and-vice-versa When should I u.. 2020. 6. 2.
Dijkstra Algorithm (๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜) https://www.youtube.com/watch?v=_lHSawdgXpI : ์ง๊ด€์  ์ดํ•ด ๋„์™€์ฃผ๋Š” 3๋ถ„์งœ๋ฆฌ ์˜์ƒ https://code.google.com/archive/p/eclipselu/downloads : algorithm.pdf์˜ Dijkstra algorithm ๋ถ€๋ถ„ (Pseudocode ์ถœ์ฒ˜) ์•„๋ž˜ ๊ทธ๋ฆผ์˜ ํŒŒ๋ž€์ƒ‰ ํ•œ๊ธ€ ๊ธ€์”จ ์ถœ์ฒ˜๋Š” ๋‚˜ Pseudocode ์ด ์ˆ˜๋„์ฝ”๋“œ์—์„œ๋Š” dist๊ฐ€ ์—…๋ฐ์ดํŠธ๋  ๋•Œ๋งˆ๋‹ค priority queue H์— push ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ฒ˜์Œ๋ถ€ํ„ฐ H์— ๋ชจ๋“  ์›์†Œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  dist๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ฉด H์—๋„ ๊ทธ๋ฅผ ์•Œ๋ฆฐ๋‹ค๋Š” ์ปจ์…‰์ด๋‹ค. ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ๋Š” H์—์„œ ์‚ฌ๋ผ์ง€๋ฏ€๋ฅด unvisited ๋ผ๋Š” ์…‹์„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ๊ตฌํ˜„ํ•  ๋•Œ dist.. 2020. 6. 2.
๋ฒ”์œ„ ๊ธฐ๋ฐ˜ ํฌ๋ฌธ (Range-based for loop) for(auto elem: arr) // arr์˜ ์š”์†Œ๊ฐ€ elem์— ๋ณต์‚ฌ for(auto& elem: arr) // arr์˜ ์š”์†Œ์˜ ์ฐธ์กฐ (๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ) [๊ถŒ์žฅ] for(const auto& elem: arr) // ์ฝ๊ธฐ ์ „์šฉ + ์ฐธ์กฐ [๊ถŒ์žฅ] ๋ฐฐ์—ด, vector, deque, list, set, map์— ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ https://boycoding.tistory.com/210 C++ 07.18 - แ„‡แ…ฅแ†ทแ„‹แ…ฑ แ„€แ…ตแ„‡แ…กแ†ซ for แ„†แ…ฎแ†ซ (range-based for statement) แ„‡แ…ฅแ†ทแ„‹แ…ฑ แ„€แ…ตแ„‡แ…กแ†ซ for แ„†แ…ฎแ†ซ (range-based for statement) '06.06 - for ๋ฌธ' ํฌ์ŠคํŠธ์—์„œ for ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๋ดค๋‹ค. #include int main.. 2020. 6. 1.