๐Ÿ‘ฉ‍๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/โœจ ์ž๋ฃŒ๊ตฌ์กฐ

๊ทธ๋ž˜ํ”„ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋Š”, ๋ฌธ์ œ ์ƒํ™ฉ์„ ๊ทธ๋ž˜ํ”„๋กœ ๋ชจ๋ธ๋งํ•œ ํ›„ ํ‘ธ๋Š” ๊ฒƒ์ด ๋ณดํŽธ์ ์ด๋‹ค. ์ด ๋•Œ, ๋ชจ๋ธ๋งํ•œ ๊ทธ๋ž˜ํ”„์˜ ์—ฐ๊ฒฐ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค. ๐Ÿ‘‰ 1. ์ธ์ ‘ ํ–‰๋ ฌ 2. ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ ๐ŸŸฉ ์ธ์ ‘ ํ–‰๋ ฌ ๊ทธ๋ž˜ํ”„์˜ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ์ด์ฐจ์› ๋ฐฐ์—ด๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ์‹ ์ธ์ ‘ ํ–‰๋ ฌ์„ adj[][]๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, adj[i][j]์— ๋Œ€ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ ๊ฐ€๋Šฅ adj[i][j] : ๋…ธ๋“œ i์—์„œ ๋…ธ๋“œ j๋กœ ๊ฐ€๋Š” ๊ฐ„์„ ์ด ์žˆ๋‹ค๋ฉด 1, ์•„๋‹ˆ๋ฉด 0 cf. ๋งŒ์•ฝ ๊ฐ„์„ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„๋ผ๋ฉด 1 ๋Œ€์‹ ์— ๊ฐ€์ค‘์น˜์˜ ๊ฐ’์„ ์ง์ ‘ ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๐ŸŒŸ ์˜ˆ์‹œ ์œ ํ–ฅ ๊ทธ๋ž˜ํ”„๊ฐ€ ์•„๋‹Œ ๋ฌดํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ๋Š”, ๋…ธ๋“œ i ๐Ÿ‘‰ ๋…ธ๋“œ j ๋ผ๋Š” ๋ง์€, ๋…ธ๋“œ j ๐Ÿ‘‰ ๋…ธ๋“œ i๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. ๋”ฐ๋ผ์„œ, ์ธ์ ‘ ํ–‰๋ ฌ์ด ๋Œ€๊ฐ์„ฑ๋ถ„(i=j์ธ ์›์†Œ๋“ค)์„ ๊ธฐ์ค€์œผ..
๐ŸŸฉ key๋งŒ ์žˆ๋Š” map ํ˜น์€ ์ •๋ ฌ๋œ ์ง‘ํ•ฉ set์€ map๊ณผ ๊ตฌ์กฐ๊ฐ€ ๋งค์šฐ ์œ ์‚ฌํ•˜๋‹ค. ๋‹จ, key๋งŒ ์žˆ๊ณ  value๊ฐ€ ์—†๋Š” map์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์‚ฌ์šฉ๋ฒ•๋„ map๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š๋‹ค. ์ •๋ ฌ๋œ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ์ •์˜ํ•œ ์ด์œ ๋Š” set์ด ๊ฐ–๋Š” ๊ฐ’๋“ค์ด ์ค‘๋ณต์„ ํ—ˆ๋ฝํ•˜์ง€ ์•Š๊ณ  ์ •๋ ฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๐ŸŸฉ ํŠน์ • ๊ฐ’์— ๋Œ€ํ•ด ๊ฒ€์ƒ‰์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ๐ŸŸฉ #include s.size() s์˜ ๋…ธ๋“œ ๊ฐœ์ˆ˜๋ฅผ ๋ฆฌํ„ด s.empty() s์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ 0์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธ s.begin() s์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” iterator ๋ฆฌํ„ด s.end() s์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” iterator ๋ฆฌํ„ด s.insert(k) s์— ๊ฐ’์ด k์ธ ๋…ธ๋“œ ์ถ”๊ฐ€ s.erase(k) s์— ๊ฐ’์ด k์ธ ๋…ธ๋“œ ์‚ญ์ œ s.find(k) s์—์„œ ..
๐ŸŸฉ ์ธ๋ฑ์Šค๋กœ int๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด (ํŽธ์˜์ƒ) map์˜ ๋‚ด๋ถ€์ ์ธ ๊ตฌ์กฐ๋Š” ๊ฐ ๋…ธ๋“œ๊ฐ€ key์™€ value์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ 'ํŠธ๋ฆฌ'์ด๋‹ค. ํŠนํžˆ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ ๋“ฑ์˜ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๊ท ํ˜• ์ด์ง„ ํŠธ๋ฆฌ ์ค‘์˜ ํ•˜๋‚˜์ธ '๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ'๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ํŠนํžˆ ๋น ๋ฅธ๋ฐ ์ด๋Š” key๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๐ŸŸฉ ์—ฐ๊ด€์žˆ๋Š” ๋‘ ๊ฐ’์„ ํ•จ๊ป˜ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•˜๋˜, ๊ฒ€์ƒ‰์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ๐ŸŸฉ #include map์€ ์ค‘๋ณต ๋ถˆ๊ฐ€ํ•œ key์™€ value ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋…ธ๋“œ์˜ ํŠธ๋ฆฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ™์€ key ๊ฐ’์„ ๊ฐ–๋Š” ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ํ•ด๋‹น key ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๋˜ ์›๋ž˜ ๋…ธ๋“œ์˜ value ๊ฐ’์— ๋ฎ์–ด ์”Œ์›Œ์ง€๊ฒŒ ๋œ๋‹ค. map์˜ ์š”์†Œ์— ์ ‘๊ทผํ•  ๋•Œ, ๋ฐ˜๋ณต์ž(it..
๐ŸŸฉ #include ๐ŸŸฉ ์ด๋ฆ„์ด first, second์ธ ๋‘ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” struct first๊ฐ€ 1์ด๊ณ , second๊ฐ€ 2์ธ pair์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด, pair๋ฅผ ์„ ์–ธํ•œ ํ›„, ๊ฐ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜(frist, second)๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, make_pair๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๐ŸŸฉ ์šฉ๋„ ์ด์ฐจ์› ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ์ด์ฐจ์› ์ขŒํ‘œํ‰๋ฉด์—์„œ์˜ ์ขŒํ‘œ ์ •์  ๋ฒˆํ˜ธ์™€ ํ•ด๋‹น ์ •์  ๋ฒˆํ˜ธ๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๋ฌถ์–ด์„œ ์ €์žฅํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ // pair ์„ ์–ธ pair p; pair p; // pair ์ƒ์„ฑ int a = 1, b = 2; pair p = make_pair(a, b); pair p = make_pair(1, 2); // pair์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— ์ ‘๊ทผ int valA = p.first; int valB..
๐ŸŸฉ #include ๐ŸŸฉ ์‚ฌ์ด์ฆˆ๊ฐ€ ์œ ๋™์ ์ธ ๋ฐฐ์—ด ์šฉ๋„ : ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ ๋™์  ๋ฐฐ์—ด์„ ๊ตฌํ˜„ํ•œ ๊ฒƒ์œผ๋กœ, ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅํ•œ๋‹ค. v.size() v์˜ ์‚ฌ์ด์ฆˆ (๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ ์šฉ๋Ÿ‰์ด ์•„๋‹Œ ์›์†Œ์˜ ๊ฐœ์ˆ˜)๋ฅผ ๋ฆฌํ„ด v.resize(new_size) v๋ฅผ new_size๋กœ ์‚ฌ์ด์ฆˆ๋ฅผ ๋ฐ”๊ฟ”์คŒ v.empty() v์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ 0์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธ v.begin() v์˜ 0๋ฒˆ์งธ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” iterator ๋ฆฌํ„ด v.end() v์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” iterator ๋ฆฌํ„ด v.front() v์˜ 0๋ฒˆ์งธ ์›์†Œ๋ฅผ ๋ฆฌํ„ด v.back() v์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ๋ฆฌํ„ด v.push_back(val) v์˜ ๋์— val๋ฅผ ์ถ”๊ฐ€ v.pop_back() v์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์‚ญ์ œ v.clear() v์˜ ๋ชจ๋“ ..
๐ŸŸฉ ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ์ธ์ ‘ํ•œ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•ด์„œ ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋ฅผ ๋จผ์ € ํƒ์ƒ‰ ์ง€๊ธˆ ์œ„์น˜์—์„œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์„ ๋ชจ๋‘ ํ(queue)์— ๋„ฃ๋Š” ๋ฐฉ์‹ ํ์— ๋„ฃ์„ ์‹œ์ ์— ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ–ˆ๋‹ค๊ณ  ์ฒดํฌํ•ด์•ผ ํ•œ๋‹ค. cf. DFS๋Š” ์ผ๋‹จ ๋“ค์–ด๊ฐ€์„œ ์ฒดํฌ ํ์™€ while ๋ฐ˜๋ณต๋ฌธ ํ™œ์šฉ ๐ŸŸฉ ๋ฐฉ๋ฒ• ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ๋“ค์€ ๋‹ค์‹œ ํƒ์ƒ‰ํ•  ์ผ์ด ์—†๋„๋ก ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. 1) ์‹œ์ž‘ ์ •์  A๋ฅผ ํ์— ๋„ฃ๊ณ  ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌํ•œ๋‹ค. A 2) ํ์—์„œ A๋ฅผ ๊บผ๋‚ด๊ณ , ์ธ์ ‘ ๋…ธ๋“œ B, C๋ฅผ ํ์— ์‚ฝ์ž… ํ›„ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌํ•œ๋‹ค. B C 3) ํ์—์„œ B๋ฅผ ๊บผ๋‚ด๊ณ , ์ธ์ ‘ ๋…ธ๋“œ D, E๋ฅผ ํ์— ์‚ฝ์ž… ํ›„ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌํ•œ๋‹ค. C D E 4) ํ์—์„œ C๋ฅผ ๊บผ๋‚ด๊ณ , ์ธ์ ‘ ๋…ธ๋“œ F, G๋ฅผ ํ์— ์‚ฝ์ž… ํ›„ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌํ•œ๋‹ค. D E F G 5) ์œ„..
๐ŸŸฉ ๊ทธ๋ž˜ํ”„์—์„œ ๊นŠ์€ ๋ถ€๋ถ„์„ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ stack์„ ์ด์šฉํ•˜์—ฌ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋งŒํผ ์ตœ๋Œ€ํ•œ ๊นŠ์ด ๊ฐ€๋Š” ๊ฒƒ์ด๊ณ , ๋” ์ด์ƒ ๊ฐˆ ๊ณณ์ด ์—†๋‹ค๋ฉด ์ด์ „ ์ •์ ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค๋Š” ๊ฒƒ ์ฃผ๋กœ ๋ฐ˜๋ณต๋ฌธ(Stack) / ์žฌ๊ท€๋ฌธ(์ˆœํ™˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜)์„ ํ†ตํ•˜์—ฌ ๊ตฌํ˜„๋œ๋‹ค. ๐ŸŸฉ ๋ฐฉ๋ฒ• ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ๋“ค์€ ๋‹ค์‹œ ํƒ์ƒ‰ํ•  ์ผ์ด ์—†๋„๋ก ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. 1. ํ˜„์žฌ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ 2. ๋ฐฉ๋ฌธํ•œ ํ‘œ์‹œ๊ฐ€ ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฐ๊ฐ์˜ ์ธ์ ‘ํ•œ ์ •์ ์„ ํƒ์ƒ‰ 3. ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ •์ ์ด ์—†์œผ๋ฉด ์ด์ „ ์ •์ ์„ ์—ญ์ถ”์  4. ๋ชจ๋“  ์ •์ ์„ ๋ฐฉ๋ฌธํ•  ๋•Œ๊นŒ์ง€ ํ”„๋กœ์„ธ์Šค ๋ฐ˜๋ณต ๐ŸŒŸ ๋ฐ˜๋ณต ๊ตฌํ˜„ (Stack ํ™œ์šฉ) 1) ์‹œ์ž‘ ์ •์  A๋ฅผ ์Šคํƒ์— ๋„ฃ๊ณ  ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌํ•œ๋‹ค. A 2) ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ ๋…ธ๋“œ A๋Š” ๊บผ๋‚ด ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ ..
๐ŸŸฉ ์ž์—ฐ์˜ ๋‚˜๋ฌด์ฒ˜๋Ÿผ ๊ฐ€์ง€๊ฐ€ ๋ถ„๊ธฐํ•˜์—ฌ ๋ป—์–ด ๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์›์„ '๋…ธ๋“œ(๋งˆ๋””)' ํŠธ๋ฆฌ ๋งจ ์œ„์— ์žˆ๋Š” ๋…ธ๋“œ๋Š” '๋ฃจํŠธ(๋ฟŒ๋ฆฌ)' ์œ„์— ์žˆ๋Š”์ง€ ์•„๋ž˜์— ์žˆ๋Š”์ง€์— ๋”ฐ๋ผ ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์ž์‹ ๋…ธ๋“œ๋กœ ๊ตฌ๋ถ„, ๊ฐ™์€ ๋ถ€๋ชจ๋ฅผ ๊ฐ€์ง€๋ฉด ํ˜•์ œ ๋…ธ๋“œ ๋ถ€๋ชจ์™€ ์ž์‹ ๋…ธ๋“œ ํ˜•ํƒœ๋กœ ๋ฌถ์ธ ํŠธ๋ฆฌ์˜ ์ผ๋ถ€๋ถ„์„ ์„œ๋ธŒ ํŠธ๋ฆฌ ํŠธ๋ฆฌ์˜ ๋งจ ์•„๋ž˜์— ์žˆ๊ณ , ๋ณ„๋„์˜ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†์œผ๋ฉด ๋ฆฌํ”„(์žŽ) ๋…ธ๋“œ ๋…ธ๋“œ์˜ ๋ ˆ๋ฒจ : ๋ฃจํŠธ๋กœ๋ถ€ํ„ฐ ๊ทธ ๋…ธ๋“œ๊นŒ์ง€ ์ด์–ด์ง„ ์„ (๊ฒฝ๋กœ)์˜ ๊ธธ ๋…ธ๋“œ์˜ ๊ธธ์ด : ์–ด๋–ค ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์ด๋™ํ•  ๋•Œ, ๊ฑฐ์น˜๋Š” ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ ๋…ธ๋“œ์˜ ๊ฒฝ๋กœ : ์–ด๋–ค ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ์ด๋™ํ•  ๋•Œ, ๊ฑฐ์น˜๋Š” ๋…ธ๋“œ์˜ ์ˆœ์„œ ๋…ธ๋“œ์˜ ํฌ๊ธฐ : ์ž๊ธฐ ์ž์‹ ๊ณผ ์ž์‹ ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•œ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ ๋…ธ๋“œ์˜ ์ฐจ์ˆ˜ : ๋…ธ๋“œ๋ณ„ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ ํŠธ๋ฆฌ์˜ ๋†’์ด : ํŠธ๋ฆฌ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๋ฆฌํ”„ ๋…ธ๋“œ..
๐ŸŸฉ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์›์†Œ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ๋ช‡ ๊ฐœ์˜ ์ •์ (Vertext)์ด ๊ฐ„์„ (Edge)์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ ๊ทธ๋ž˜ํ”„ G = (V,E) ๐ŸŸฉ ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ํŠน์ • ์ •์ ์—์„œ ์ถœ๋ฐœํ•ด ๊ฐ„์„ ์„ ํ†ตํ•ด ์ด๋™ํ•ด๊ฐ€๋ฉฐ ๋Œ€์ƒ ์ •์ ์„ ์ฐพ๋Š” ๊ฒƒ ํƒ์ƒ‰ ์ˆœ์„œ์— ๋”ฐ๋ผ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰, ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ๐ŸŸฉ ๊ทธ๋ž˜ํ”„ ์šฉ์–ด ์ธ์ ‘ : ๋‘ ์ •์ ์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์„ ๋•Œ cf. ์ •์ ๋“ค์€ ๋ถ€์†๋˜์–ด ์žˆ๋‹ค ํ•œ๋‹ค. ์ฐจ์ˆ˜ : ์ •์ ์— ๋ถ€์†๋˜์–ด ์žˆ๋Š” ๊ฐ„์„ ์˜ ์ˆ˜ ๊ฒฝ๋กœ : ์ •์  a์—์„œ b๊นŒ์ง€ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์ •์ ์„ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•œ ๋ฆฌ์ŠคํŠธ ๋‹จ์ˆœ ๊ฒฝ๋กœ : ๋ชจ๋‘ ๋‹ค๋ฅธ ์ •์ ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ๋กœ ๐Ÿ‘‰ ์ง„์ž… ์ฐจ์ˆ˜, ์ง„์ถœ ์ฐจ ๊ฒฝ๋กœ ๊ธธ์ด : ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ„์„ ์˜ ์ˆ˜ ์‚ฌ์ดํด : ๋‹จ์ˆœ ๊ฒฝ๋กœ ์ค‘์—์„œ ๊ฒฝ๋กœ์˜ ์‹œ์ž‘ ์ •์ ๊ณผ ๋งˆ์ง€๋ง‰ ์ •์ ์ด ๊ฐ™์€ ๊ฒฝ๋กœ ๐ŸŸฉ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ธ์ ‘ ํ–‰๋ ฌ, ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ ๐ŸŒŸ ๋ฌด..
๐ŸŸฉ ํž™ = ํ‡ด์ ๋ฌผ ๋ฐ”๋‹ท์† ํ‡ด์ ๋ฌผ์ฒ˜๋Ÿผ ์•„๋ž˜์— ํฐ ๋ฐ”์œ„, ์ค‘๊ฐ„ ์ •๋„์˜ ๋Œ, ๊ทธ ์œ„์— ์ž‘์€ ๋ชจ๋ž˜ ์ˆœ์œผ๋กœ ์Œ“์—ฌ์žˆ๋‹ค. ๐ŸŸฉ ๊ทธ๋ž˜ํ”„์˜ ํŠธ๋ฆฌ ๊ตฌ์กฐ ์ค‘ ํ•˜๋‚˜(์™„์ „ ์ด์ง„ํŠธ๋ฆฌ) ๊ฐ ๋…ธ๋“œ์˜ ํ‚ค ๊ฐ’์ด ๊ทธ ์ž์‹์˜ ํ‚ค ๊ฐ’๋ณด๋‹ค ์ž‘์ง€ ์•Š๊ฑฐ๋‚˜(์ตœ๋Œ€ํž™), ํฌ์ง€ ์•Š์€(์ตœ์†Œํž™) ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ๋Š” ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ํž™์€ ํ—ˆ์šฉํ•œ๋‹ค. ๐ŸŸฉ ์ •๋ ฌ์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ํŠธ๋ฆฌ '์šฐ์„ ์ˆœ์œ„ ํ'๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋จ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด O(n)๋งŒํผ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ, ํž™์„ ์‚ฌ์šฉํ•˜๋ฉด O(logn)๋งŒํผ ์†Œ์š”๋˜๋ฏ€๋กœ, ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•  ๋•Œ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ตœ์†Ÿ๊ฐ’, ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๐ŸŸฉ ํž™์—์„œ์˜ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„ ์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ์ธ๋ฑ์Šค = (๋ถ€๋ชจ์˜ ์ธ๋ฑ์Šค) * 2 + 1 ์™ผ์ชฝ ์ž์‹์˜ ์ธ๋ฑ์Šค = (๋ถ€๋ชจ์˜ ์ธ๋ฑ์Šค) * 2 ..
ํ•ด์‹œํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์„ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ์กฐ ํ‚ค(key)์™€ ๊ฐ’(value)์ด ํ•œ ์Œ์„ ์ด๋ฃจ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ํŠน์ • ํ‚ค๊ฐ’ K๋ฅผ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์—์„œ ํ™œ์šฉ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํ˜•ํƒ์ƒ‰์œผ๋กœ ๊ตฌํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์–‘์— ๋น„๋ก€ํ•ด์„œ ๊ณ„์‚ฐ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋ฐฐ์—ด ํƒ์ƒ‰์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋ฏ€๋กœ, ์ ํ•ฉํ•˜์ง€ ์•Š์€ ๊ตฌ์กฐ ๐Ÿ‘‰ ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ๋“ฑ์žฅ ๐ŸŸฉ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ, 'ํ•ด์‹œ ํ•จ์ˆ˜' ์ด์šฉ ํ‚ค ๊ฐ’์„ ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ๊ณ„์‚ฐ์ด ์šฉ์ดํ•ด์•ผ ํ•˜๋ฉฐ, ์ ์€ ์ถฉ๋Œ ๋ฐœ์ƒ ๐Ÿ‘‰ ๊ฐ ํ‚ค๋ฅผ ํ…Œ์ด๋ธ”์˜ ๊ฐ ์Šฌ๋กฏ์— ๊ท ๋“ฑํ•˜๊ฒŒ ์‚ฌ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์•ผ ๐ŸŒŸ ํ•ด์‹œ ํ•จ์ˆ˜์˜ ์ข…๋ฅ˜ 1. ์ œ์‚ฐ์ž”์—ฌ๋ฒ• ํ‚ค ๊ฐ’์„ ํ•ด์‹œ ํ•จ์ˆ˜์— ๋„ฃ์–ด ๋‚˜์˜ค๋Š” ํ•ด์‹œ๊ฐ’์„ ๋ฐฐ์—ด์˜ ๊ฐฏ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•œ๋‹ค. ์˜ˆ) 4928 % 5 = 3 ๊ตฌํ•œ..
๐ŸŸฉ LIFO (Last In First Out) ๐ŸŸฉ DFS (๊นŠ์ด์šฐ์„ ํƒ์ƒ‰) ํ›„๋ณด ์ค‘์—์„œ ํ•ญ์ƒ ์ตœ์‹ ์˜ ๊ฒƒ์„ ์„ ํƒ ๐ŸŸฉ ํ—ค๋” ์ถ”๊ฐ€ ๐ŸŸฉ ์ฃผ์š” ๋™์ž‘ push ์‚ฝ์ž… pop ์ถ”์ถœ peek ๊ฐ€์žฅ ์ตœ์ƒ๋‹จ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์Œ ๐ŸŸฉ ์‚ฝ์ž…/์‚ญ์ œ๊ฐ€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋ฃจ์–ด์ง ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ, ๊ฐ€์žฅ ์œ„์— ์ถ”๊ฐ€๋œ๋‹ค. ์‚ญ์ œ๋„ ๊ฐ€์žฅ ์œ„์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ ‘๊ทผ๋„ ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ๊ทธ ๋•Œ๊นŒ์ง€ popํ•ด์•ผ ํ•œ๋‹ค. ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ๊ธฐ๋Šฅ s.size() s์˜ ์‚ฌ์ด์ฆˆ(๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ ์šฉ๋Ÿ‰์ด ์•„๋‹Œ ์›์†Œ์˜ ๊ฐœ์ˆ˜)๋ฅผ ๋ฆฌํ„ด s.empty() s์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ 0์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธ s.top() s์— ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ์›์†Œ๋ฅผ ๋ฆฌํ„ด s.push(val) s์˜ ๋’ค์— val๋ฅผ ์ถ”๊ฐ€..
peewoong
'๐Ÿ‘ฉ‍๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/โœจ ์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก