์•Œ๊ณ ๋ฆฌ์ฆ˜

    [Algorithm] ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ DFS/BFS

    DFS (Depth-First-Search) ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ๊ทธ๋ž˜ํ”„์—์„œ ๊นŠ์€ ๋ถ€๋ถ„์„ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋‹ค. DFS์˜ ์žฅ์  ํ˜„ ๊ฒฝ๋กœ์ƒ์˜ ๋…ธ๋“œ๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ฐพ์œผ๋ ค๋Š” ๋…ธ๋“œ๊ฐ€ ๊นŠ์€ ๋‹จ๊ณ„์— ์žˆ๋Š” ๊ฒฝ์šฐ BFS ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. DFS์˜ ๋‹จ์  ํ•ด๊ฐ€ ์—†๋Š” ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ ํ•  ๊ฒฝ์šฐ ๋‹จ๊ณ„๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ํšจ์œจ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ๋ฏธ๋ฆฌ ์ง€์ •ํ•œ ์ž„์˜ ๊นŠ์ด๊นŒ์ง€๋งŒ ํƒ์ƒ‰ํ•˜๊ณ  ํ•ด๋ฅผ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋น ์ ธ๋‚˜์™€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. DFS๋ฅผ ํ†ตํ•ด์„œ ์–ป์–ด์ง„ ํ•ด๊ฐ€ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ผ๋Š” ๋ณด์žฅ์ด ์—†์Šต๋‹ˆ๋‹ค. DFS๋Š” ํ•ด์— ๋„์ฐฉํ•˜๋ฉด ํƒ์ƒ‰์„ ์ข…๋ฃŒํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. BFS (Breadth-First-Search) ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ..

    [Algorithm] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„์™€ Big-O ๋ž€?

    ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ์–ด๋–ค ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด๋‚ด๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •๋“ค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ฐ€๋Š” ๋ฃจํŠธ๋Š” ๋‹ค์–‘ํ•˜๋ฉฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ƒํ™ฉ์— ๋”ฐ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ชจ๋‘ ๋‹ค๋ฅด๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ๋ณต์žก๋„(Complexity)๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ฒ™๋„์ด๋‹ค. ๋ณต์žก๋„๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„ ํŠน์ •ํ•œ ํฌ๊ธฐ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์—ฐ์‚ฐ์ด ๋ช‡๋ฒˆ ์ด๋ฃจ์–ด์ง€๋Š” ์ง€๋ฅผ ํ‘œ๊ธฐ ๊ณต๊ฐ„ ๋ณต์žก๋„ ํŠน์ •ํ•œ ํฌ๊ธฐ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋Š”์ง€๋ฅผ ์˜๋ฏธ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋‹ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋ณต์žก๋„๊ฐ€ ๋‚ฎ์„์ˆ˜๋ก ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•(Big O Notation) ๋ณต์žก๋„๋ฅผ ํ‘œํ˜„ํ• ๋•Œ์—๋Š” ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์„ ..