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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ74

[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.