[ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•] ํ›„์œ„ํ‘œ๊ธฐ์‹์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ (html, js ์ด์šฉ) :: ๊ฐœ๋…์—์„œ ๊ตฌํ˜„๊นŒ์ง€
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/๊ธฐ์ดˆ 2020. 12. 21. 00:00

ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ ๊ณ„์‚ฐ๊ธฐ ๊ด€๋ จ ์™ธ์ฃผ๊ฐ€ ๋“ค์–ด์™€์„œ ํ•ด๋ณด๋˜ ์ค‘, ์˜ˆ์ „์— ๋ฐฐ์› ๋˜ ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ธฐ์–ต์ด ์•ˆ๋‚˜์„œ ๊ฒ€์ƒ‰ ์—†์ด ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค... ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ๊นŒ stack์„ ์ด์šฉํ•ด์„œ ํ›„์œ„ํ‘œ๊ธฐ๋ฒ•์„ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ๋‚˜์™€์žˆ์–ด์„œ ๊นŒ๋จน์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•œ๋‹ค. ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ• ์ˆ˜์‹ ํŠธ๋ฆฌ ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ•์ด๋ž€ ๊ณ„์‚ฐ์‹์—์„œ ๊ณ„์‚ฐ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค. ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์ž. ์ˆ˜์‹ : 9x3+1-3%3 ์ˆ˜์‹์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋น„์—ฐ์‚ฐ์ž์™€ ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆˆ ํ›„, ๊ฐ ํ•ญ๋ชฉ์„ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠธ๋ฆฌ๋Š” ์ˆ˜์‹์„ ํŠธ๋ฆฌ๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋งŒ๋“  ๊ฒƒ์ด๋‹ˆ ์ˆ˜์‹ํŠธ๋ฆฌ, ์ฆ‰ Expression Tree๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ํŠธ๋ฆฌ ์ˆœํšŒ์™€ ํ‘œ๊ธฐ๋ฒ• ํŠธ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ์‹์—๋Š” prefix(์ „์œ„)..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ (BFS, DFS)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 13. 00:01

๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ธฐ๋ฒ•์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์ธ BFS(Breadth-First Search)์™€ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ธ DFS(Depth-First Search)์ด๋‹ค. BFS BFS๋Š” ํ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. ์„ค๋ช… ํŠธ๋ฆฌ๋กœ ์˜ˆ๋ฅผ ๋“ค์—ˆ์ง€๋งŒ, ๋ชจ๋“  ๊ทธ๋ž˜ํ”„์—์„œ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ queue์— ๋„ฃ๋Š”๋‹ค. queue์˜ ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜ ๊บผ๋‚ธ ํ›„, ํ•ด๋‹น ๋…ธ๋“œ์™€์˜ ์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ queue์— ๋„ฃ๋Š”๋‹ค. ์œ„์˜ ๋ฐฉ์‹์„ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. stack์— ๋“ค์–ด๊ฐ„ ์ˆœ์„œ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1=>2=>3=>4=>5=>6=>7=>8 ๋”ฐ๋ผ์„œ ํŠธ๋ฆฌ์—์„œ BFS๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํƒ์ƒ‰์„ ํ•˜๋Š” ๊ฒƒ์€ ๋ ˆ๋ฒจ ์ˆœํšŒ๋ฅผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. DFS DFS๋Š” ์Šคํƒ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. ์„ค๋ช… ํŠธ๋ฆฌ๋กœ ์˜ˆ๋ฅผ ๋“ค..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ž๋ฃŒ๊ตฌ์กฐ - ํŠธ๋ฆฌ
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 28. 14:20

ํŠธ๋ฆฌ ์šฉ๋„ ์šฉ์–ด ์ •๋ฆฌ ์ข…๋ฅ˜ ์ด์ง„ ํŠธ๋ฆฌ ์ผ๋ฐ˜ ํŠธ๋ฆฌ ์Šค๋ ˆ๋“œ ์ด์ง„ ํŠธ๋ฆฌ ๊ตฌํ˜„ ๋ฐฐ์—ด ํ‘œํ˜„๋ฒ• ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ํ‘œํ˜„๋ฒ• ํŠธ๋ฆฌ ํ™œ์šฉ ํƒ์ƒ‰ ์ง‘ํ•ฉ ํ‘œํ˜„ ํ—ˆํ”„๋งŒ ์ฝ”๋“œ ํŠธ๋ฆฌ ํŠธ๋ฆฌ๋ž€ ๊ทธ๋ž˜ํ”„์˜ ํ•œ ์ข…๋ฅ˜๋กœ ๋ฌด๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„(Connected Undirected Acyclic Graph)์ด๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•˜๊ณ , ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ์˜ in-degree๊ฐ€ 1์ธ ๋ฐฉํ–ฅ๊ทธ๋ž˜ํ”„๋ผ๊ณ  ๋งํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ทธ๋ž˜ํ”„์˜ ํ•œ ์ข…๋ฅ˜์ด๋ฏ€๋กœ ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์— ์†ํ•œ๋‹ค. ์šฉ๋„ ๊ณ„์ธต์ ์ธ ์กฐ์ง์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜, ์ปดํ“จํ„ฐ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ / ์ธ๊ณต์ง€๋Šฅ์˜ decision tree ๋“ฑ์— ์ด์šฉ๋œ๋‹ค. ๋˜ํ•œ ์ž๋ฃŒ์˜ ํƒ์ƒ‰ / ์ •๋ ฌ / DB ๊ตฌ์„ฑ์ด๋‚˜ ๋ถ„์ž๊ตฌ์กฐ์‹ ์„ค๊ณ„ ๋“ฑ์—์„œ๋„ ๋‹ค์–‘ํ•˜๊ฒŒ ์ด์šฉ๋œ๋‹ค. (๊ฒฐ์ •ํŠธ๋ฆฌ)(์ด์ง„ํƒ์ƒ‰) ์šฉ์–ด ์ •๋ฆฌ ๋…ธ๋“œ ..

[c++]๋ฐฑ์ค€ 1260๋ฒˆ : DFS์™€ BFS
Algorithm ๋ฌธ์ œ/BOJ 2020. 3. 20. 20:33

๋ฌธ์ œ : ๋ฐฑ์ค€ 1260๋ฒˆ _ DFS์™€ BFS ์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 2 ์ดˆ 128 MB 87845 28912 16832 31.543% ๋ฌธ์ œ ๊ทธ๋ž˜ํ”„๋ฅผ DFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ์™€ BFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” ์ •์  ๋ฒˆํ˜ธ๊ฐ€ ์ž‘์€ ๊ฒƒ์„ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๊ณ , ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ข…๋ฃŒํ•œ๋‹ค. ์ •์  ๋ฒˆํ˜ธ๋Š” 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€์ด๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000), ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M(1 ≤ M ≤ 10,000), ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•  ์ •์ ์˜ ๋ฒˆํ˜ธ V๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ„์„ ์ด ์—ฐ๊ฒฐํ•˜๋Š” ๋‘ ์ •์ ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์–ด๋–ค ๋‘ ์ •์  ์‚ฌ์ด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ„์„ ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ..