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

๐Ÿ–ฅ CS/Algorithm

(16)
[Algorithm/Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Lv.3) - ๊ธฐ์ง€๊ตญ ์„ค์น˜ ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค:) ๊ฝค๋‚˜ ์˜ค๋žœ๋งŒ์ด์ฃ ..? ์ธ๊ฐ„์ด ์™ค์ผ€ ๊ฒŒ์œผ๋ฅผ๊นŒ์š” ์˜ค๋žœ๋งŒ์— ํ‹ฐ์Šคํ† ๋ฆฌ๋ฅผ ๋“ค์–ด์™”๋”๋‹ˆ ํ”ผ๋“œ์— ์ƒˆ ๊ธ€์ด ์—„์ฒญ ๋งŽ๋„ค์š”.. ๋‹ค๋“ค ๊พธ์ค€ํ•œ ๊ธฐ๋ก ๋Œ€๋‹จํ•ด..๋ณธ๋ฐ›๊ฒ ์Šต๋‹ˆ๋‹ค.. ๋•๋ถ„์— ์ €๋„ ์ž๊ทน๋ฐ›๊ณ  ๋‹ค์‹œ ์—ด์‹ฌํžˆ ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธ€์„ ์—ด์‹ฌํžˆ ์ช„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!!!! ์˜ค๋Š˜์€ PS ๊ธฐ๋ก์„ ๋‚จ๊ฒจ๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ Lv3..? ํ‹ฐ์Šคํ† ๋ฆฌ์— ํ’€์ด๊ธฐ๋ก์€ ์•ˆํ–ˆ์ง€๋งŒ.. ๋จธ ํ’€๋‹ค๋ณด๋‹ˆ ๋ ˆ๋ฒจ3๊นŒ์ง€ ์™”๋„ค์š”? ๋ ˆ๋ฒจ3 ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋‹ˆ ํ™•์‹คํžˆ ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๊ฑฐ๋‚˜, ํšจ์œจ์„ฑ๊นŒ์ง€ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋งŽ์•„์„œ ๊ธฐ๋ก์˜ ํ•„์š”์„ฑ์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•ž์œผ๋กœ ๋ฌธ์ œ ํ’€์ด๊ณผ์ •์—์„œ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋˜๋Š” ์ข‹์€ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด๋‚˜ ํ’€์ด ๋ฐฉ๋ฒ•๋“ค์„ ๊ธ€๋กœ ๋‚จ๊ฒจ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ์ €์˜ PS ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์ƒ๋žตํ•˜๊ณ  ์ ‘๊ทผ ๋ฐ ํ’€์ด ์œ„์ฃผ๋กœ ๊ธฐ๋กํ•ด๋‚˜๊ฐ€๋„๋ก ํ• ๊ฒŒ์š”๐Ÿ™ƒ๐Ÿ™‚..
[Algorithm/Swift] ์ด์ง„ ํƒ์ƒ‰(Binary Search) ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค :) ์˜ค๋Š˜์€ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ์ด์ง„ ํƒ์ƒ‰(Binary Search)์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ณ  Swift ์ฝ”๋“œ๋กœ ๊ตฌํ˜„๊นŒ์ง€ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฒฝ์šฐ ํƒ์ƒ‰์˜ ๋ฒ”์œ„๊ฐ€ ์•„์ฃผ ํฐ ์ƒํ™ฉ์—์„œ ์†๋„๋ฅผ ๋‚ด์„œ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ˆ ์ž˜ ์ •๋ฆฌํ•ด๋‘๋ฉด ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š”! ์ด์ง„ ํƒ์ƒ‰์ด๋ž€? ๋จผ์ €, ์ด์ง„ ํƒ์ƒ‰์ด ์™œ ํ•„์š”ํ• ๊นŒ์š”?? ๋ฆฌ์ŠคํŠธ ๋‚ด์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ธ ์ˆœ์ฐจ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•๊ณผ ๋น„๊ตํ•˜๋ฉฐ ์ด์ง„ ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค. ์ˆœ์ฐจ ํƒ์ƒ‰ ์ˆœ์ฐจ ํƒ์ƒ‰์ด๋ž€ ๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ž์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฆฌ์ŠคํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ฒŒ..
[Algorithm/Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Lv.2) - ๋ฌด์ธ๋„ ์—ฌํ–‰ ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค! ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์— ์ตœ๊ทผ ์ถ”๊ฐ€๋œ ์—ฐ์Šต๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ธ ๋ฌด์ธ๋„ ์—ฌํ–‰์ด๋ผ๋Š” ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜๋Š”๋ฐ์š”, ๋ฌธ์ œ ํ•ด๊ฒฐ ์•„์ด๋””์–ด๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ฝค๋‚˜ ์–ด๋ ค์› ๋˜ ๋ฌธ์ œ์ด๊ธฐ๋„ ํ•˜๊ณ , Swift ํ’€์ด๊ฐ€ ์•„์ง ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ํ•œ ๋ฒˆ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฌด์ธ๋„์— ์™œ ๊ตณ์ด ์—ฌํ–‰์„ ๊ฐ€๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์•”ํŠผ ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š”..ใ…Ž ๋ฌธ์ œ ๋งํฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… ๋ฉ”๋ฆฌ๋Š” ์—ฌ๋ฆ„์„ ๋งž์•„ ๋ฌด์ธ๋„๋กœ ์—ฌํ–‰์„ ๊ฐ€๊ธฐ ์œ„ํ•ด ์ง€๋„๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๋„์—๋Š” ๋ฐ”๋‹ค์™€ ๋ฌด์ธ๋„๋“ค์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ผ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๋„๋Š” 1 x 1ํฌ๊ธฐ์˜ ์‚ฌ๊ฐํ˜•๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ..
[Algorithm/Swift] ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming) ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋… ์ค‘ ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming)์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋™์  ๊ณ„ํš๋ฒ•์ด ๋ฌด์—‡์ธ์ง€ ์ •๋ฆฌํ•ด๋ณด๊ณ , ๋™์  ๊ณ„ํš๋ฒ•์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ œ์ธ ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ์ ์šฉ๊นŒ์ง€ ํ•ด๋ณด๋„๋ก ํ• ๊ฒŒ์š”! ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming, DP) ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(์ค„์—ฌ์„œ DP)๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ๋™์  ๊ณ„ํš๋ฒ•์€ ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘๊ฒŒ ๋‚˜๋ˆ„๊ณ , ๊ฐ™์€ ๋ฌธ์ œ๋ผ๋ฉด ํ•œ ๋ฒˆ์”ฉ๋งŒ ํ’€์–ด ๋ฌธ์ œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋™์  ๊ณ„ํš๋ฒ•์—์„œ๋Š” ๋ฉ”๋ชจ์ด์ œ์ด์…˜(Memoization) ๊ธฐ๋ฒ•์ด ํ•ต์‹ฌ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”! ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ๊ธฐ๋ฒ•์ด๋ž€, ํ•œ ๋ฒˆ ๊ตฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅํ•ด๋‘๊ณ  ๊ฐ™์€ ์‹์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•ด ์ €์žฅํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋ฒ•์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ์ด์ œ์ด์…˜์€ ๊ฐ’์„ ์ €์žฅํ•˜๋Š”..
[Algorithm/Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Lv.1) - [1์ฐจ] ๋‹คํŠธ๊ฒŒ์ž„ ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค!! 2018 KAKAO BLIND RECRUITMENT ๋ฌธ์ œ๋กœ ์ถœ์ œ๋˜์—ˆ๋˜ ๋‹คํŠธ๊ฒŒ์ž„ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ดค๋Š”๋ฐ์š”, ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ธฐ์ค€ Level1 ๋ฌธ์ œ์ด์ง€๋งŒ ์ €๋Š” ์ ‘๊ทผํ•˜๋Š”๋ฐ ๊ฝค๋‚˜ ์˜ค๋ž˜๊ฑธ๋ ธ๊ธฐ ๋•Œ๋ฌธ์—.. ์–ด๋–ป๊ฒŒ ํ’€์—ˆ๋Š”์ง€ ๋ณต๊ธฐํ•˜๋ฉฐ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!! ๋ฌธ์ œ ๋งํฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… ์นด์นด์˜คํ†ก ๊ฒŒ์ž„๋ณ„์˜ ํ•˜๋ฐ˜๊ธฐ ์‹ ๊ทœ ์„œ๋น„์Šค๋กœ ๋‹คํŠธ ๊ฒŒ์ž„์„ ์ถœ์‹œํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋‹คํŠธ ๊ฒŒ์ž„์€ ๋‹คํŠธํŒ์— ๋‹คํŠธ๋ฅผ ์„ธ ์ฐจ๋ก€ ๋˜์ ธ ๊ทธ ์ ์ˆ˜์˜ ํ•ฉ๊ณ„๋กœ ์‹ค๋ ฅ์„ ๊ฒจ๋ฃจ๋Š” ๊ฒŒ์ž„์œผ๋กœ, ๋ชจ๋‘๊ฐ€ ๊ฐ„๋‹จํžˆ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ“ ์ž…์‚ฌํ•œ ๋ฌด์ง€๋Š” ์ฝ”๋”ฉ ์‹ค๋ ฅ์„ ์ธ์ •๋ฐ›์•„ ๊ฒŒ์ž„์˜..
[Algorithm/Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Lv.1) - ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค!! ์˜ค๋Š˜์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ์•Œ๊ฒŒ๋œ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ธฐ๋กํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๋ฌธ์ œ๋Š” ๋ ˆ๋ฒจ1์˜ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ด์ง€๋งŒ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹(?)๊ณผ ๊ฐ™์€ ๊ฐœ๋…์„ ์•Œ๊ณ ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค์—์„œ์˜ ์‘์šฉ์— ๋Œ€๋น„ํ•ด ์ •๋ฆฌํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!! ๋ฌธ์ œ ๋งํฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… ๋‘ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ๋ณด์„ธ์š”. ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ตœ..
[Algorithm/Swift] BFS(๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰) Swift๋กœ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค:) ์˜ค๋Š˜์€ ์ €๋ฒˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํฌ์ŠคํŒ…(DFS)์— ์ด์–ด BFS(๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰)์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค! ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—, ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ธ BFS๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ์šฐ์„  ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ์ดํ•ด๋ถ€ํ„ฐ ํ•„์š”ํ•˜๋‹ˆ ํ˜น์‹œ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋กœ ๊ฑธ์–ด๋‘” ์ด์ „ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!! [Algorithm/Swift] DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰) Swift๋กœ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ ์š”์ฆ˜ ๋ผ๋Š” ์ฑ…์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๋“ค์„ ํ•˜๋‚˜์”ฉ ๋ฟŒ์ˆ˜๊ณ  ์žˆ๋Š”๋ฐ์š”, ์ด ์ฑ…์ด ํŒŒ์ด์ฌ ์–ธ์–ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…๋˜์–ด์žˆ์–ด์„œ ๊ฐœ๋…์„ ํ•™์Šตํ•˜๊ณ , ์˜ˆ์ œ๋‚˜ ์‹ค์ „ ๋ฌธ์ œ๋“ค์„ Swift์–ธ์–ด๋กœ ํ’€์ดํ•ด๋ณด๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฐจ๊ทผ janechoi.tistory.com BFS BFS(Breadth First Search)๋Š” '๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰'์ด๋ผ๋Š” ์˜๋ฏธ..
[Algorithm/Swift] DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰) Swift๋กœ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ ์š”์ฆ˜ ๋ผ๋Š” ์ฑ…์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๋“ค์„ ํ•˜๋‚˜์”ฉ ๋ฟŒ์ˆ˜๊ณ  ์žˆ๋Š”๋ฐ์š”, ์ด ์ฑ…์ด ํŒŒ์ด์ฌ ์–ธ์–ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…๋˜์–ด์žˆ์–ด์„œ ๊ฐœ๋…์„ ํ•™์Šตํ•˜๊ณ , ์˜ˆ์ œ๋‚˜ ์‹ค์ „ ๋ฌธ์ œ๋“ค์„ Swift์–ธ์–ด๋กœ ํ’€์ดํ•ด๋ณด๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ณต๋ถ€ํ•ด๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ๊ฐœ๋…์„ ๊ณต๋ถ€ํ•˜๊ณ  Swift ์–ธ์–ด๋กœ ๋ฐ”๊ฟ”๋ณด๋Š” ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฐœ๋…๋“ค ์ค‘ ํ•˜๋‚˜์ธ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๊ทธ ์ค‘์—์„œ๋„ DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)์˜ ๊ฐœ๋…์„ ์ •๋ฆฌํ•ด๋ณด๊ณ , ์ฑ…์˜ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ Swift ์–ธ์–ด๋กœ ๋ฐ”๊ฟ”์„œ DFS๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! DFS DFS(Depth-First Search)๋Š” ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ๊ทธ๋ž˜ํ”„์—์„œ ๊นŠ์€ ๋ถ€๋ถ„์„ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ๊ทธ๋ž˜ํ”„๋Š” ์–ด๋–ค ๊ตฌ์กฐ์ธ์ง€ ๋ถ€ํ„ฐ ์•Œ์•„์•ผ ..