๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ“š Language & CS knowledge/Algorithm & Data structure (21)

Daehyunii's Dev-blog

23 ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

23.1 ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ„๋‹จํ•œ ํ•˜์œ„ ๋ฌธ์ œ์˜ ๋ชจ์Œ์œผ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๊ฐ ํ•˜์œ„ ๋ฌธ์ œ๋“ค์„ ํ’€์–ด์„œ ๊ทธ ๋‹ต์„ ์ €์žฅํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์‹์ด๋‹ค. ์ฆ‰, ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ ‘๊ทผ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋ฅผ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ•ด๊ฒฐ ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ, ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์— ๋Œ€ํ•ด ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ์— ์žˆ์–ด์„œ ์•„์ฃผ ํฐ ์ฐจ์ด๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ฝ”๋“œ์˜ ์†๋„๋ฅผ ์ •๋ง ๋งŽ์ด ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค. 23.2 ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™œ์šฉ ๊ฐ€๋Šฅ ์ƒํ™ฉ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. 1) ๋ฐ˜๋ณต..

21 ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ

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

20 ๊ทธ๋ž˜ํ”„

20.1 ๊ทธ๋ž˜ํ”„ ๊ทธ๋ž˜ํ”„๋ž€ ์œ ํ•œํ•˜๊ณ  ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ผญ์ง€์ (๋…ธ๋“œ)์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค. ์ด ๊ผญ์ง€์ ๋“ค์˜ ์ง‘ํ•ฉ์— ์ˆœ์„œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„, ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์œ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰, ๊ทธ๋ž˜ํ”„๋Š” ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋“ค์˜ ์—ฐ๊ฒฐ์„ ๋ชจ์€ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํŠธ๋ฆฌ๋„ ๊ทธ๋ž˜ํ”„์˜ ์ผ์ข…์ด๋‹ค. ๋‹ค๋งŒ ํŠธ๋ฆฌ๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ทœ์น™์ด ์ถ”๊ฐ€๋˜์–ด ๋ถ€๋ชจ์™€ ์ž์‹๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋˜๊ณ  ์‹œ์ž‘์ ์ธ ๋ฃจํŠธ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ž˜ํ”„์—๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ๋ผ๋Š” ๊ฒƒ์ด ์—†๊ณ , ์‹œ์ž‘์ ๋„ ์—†๋‹ค. ๋‹ค ๋™์ผํ•œ ๋…ธ๋“œ์ผ ๋ฟ์ด๋‹ค. ๋˜ํ•œ ๊ทธ๋ž˜ํ”„๋Š” ํŠธ๋ฆฌ๋‚˜ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ฐ™์€ ์ˆ˜์ค€์˜ ํŒจํ„ด์ด ์—†๋‹ค. ์ž์œ ๋กœ์šด ํ˜•์‹์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๊ณ  ๊ทธ ์‚ฌ์ด์— ์—ฐ๊ฒฐ๋งŒ ์žˆ์„ ๋ฟ์ด๋‹ค. ๋˜ํ•œ ํŠธ๋ฆฌ๋Š” ํ•œ ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๊ฐ€ ๋”ฑ ํ•œ ๊ฐ€์ง€๋งŒ ์กด์žฌํ•ด์•ผ ํ•˜์ง€๋งŒ ๊ทธ๋ž˜ํ”„๋Š” ์ˆ˜ ๊ฐœ์˜ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•  ..

19 ํ•ด์‹œ ํ…Œ์ด๋ธ”

19.1 ํ•ด์‹œ ํ…Œ์ด๋ธ”(ํ•ด์‹œ ๋งต) ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด๋ž€ ํ‚ค์™€ ๊ฐ’์„ ์Œ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค. ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. python์€dictionaries, Java Script๋Š” Object์™€ Maps, Java๋Š” Go, Scala ๊ทธ๋ฆฌ๊ณ  Maps, Juby๋Š” Hashes๋กœ ์•Œ๋ ค์ ธ ์žˆ๋‹ค. ์ด ์ฒ˜๋Ÿผ ์–ธ์–ด๋งˆ๋‹ค ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด ๋‚ด์žฅ๋˜์–ด ์žˆ๊ณ  ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์ด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฝ”๋”ฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์—ด๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค. ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง€์ง€๋งŒ ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์ˆœ์„œ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด ์ข‹์€ ์ด์œ ๋Š” ์ƒˆ๋กœ์šด ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๋Š”๋ฐ ์•„์ฃผ ๋น ๋ฅด๊ณ  ๋ฐ์ดํ„ฐ ๊ทธ ์ž์ฒด๊ฐ€ ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ํŽธํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. 19.2 ํ•ด..

18 ์ด์ง„ ํž™

18.1 ์ด์ง„ ํž™ ์ด์ง„ ํž™์€ ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํŠธ๋ฆฌ์— ์ ์šฉ๋˜๋Š” ๊ทœ์น™๋“ค์ด ๋‹ค ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋˜์ง€๋งŒ ์ถ”๊ฐ€์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ๊ทœ์น™๋“ค์ด ์žˆ๋‹ค. ํž™์—๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์ง€๋งŒ ์ง€๊ธˆ ์•Œ์•„ ๋ณผ ๋‚ด์šฉ์€ ํž™์˜ ํ•œ ์ข…๋ฅ˜์ธ ์ด์ง„ ํž™์ด๋‹ค. ์ด์ง„ ํž™์€ ๋‹ค์‹œ ์ตœ์†Œ ํž™๊ณผ, ์ตœ๋Œ€ ํž™์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ์ตœ๋Œ€ ์ด์ง„ ํž™์—์„œ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ํ•ญ์ƒ ์ž์‹ ๋…ธ๋“œ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ์ž์‹ ๋…ธ๋“œ๋กœ ์ €์žฅ๋˜๋Š” ์™ผ์ชฝ/์˜ค๋ฅธ์ชฝ์˜ ์ˆœ์„œ๋Š” ์ƒ๊ด€์—†์ด ํ•œ ๋ ˆ๋ฒจ ์•„๋ž˜์— ์žˆ๋Š” ์ฆ‰, ์ž์‹ ๋…ธ๋“œ๋ณด๋‹ค๋Š” ํ•ญ์ƒ ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ํฌ๋‹ค.(์˜ค๋ฅธ์ชฝ/์™ผ์ชฝ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์™ผ์ชฝ๋ถ€ํ„ฐ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.) ์ตœ์†Œ ์ด์ง„ ํž™์€ ์ตœ๋Œ€ ์ด์ง„ ํž™๊ณผ ๋ฐ˜๋Œ€๋กœ ๋ถ€๋ชจ ๋…ธ๋“œ๋Š” ํ•ญ์ƒ ์ž์‹ ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ์ž์‹ ๋…ธ๋“œ๋กœ ์ €์žฅ๋˜๋Š” ์™ผ์ชฝ/์˜ค๋ฅธ์ชฝ์˜ ์ˆœ์„œ๋Š” ๋งˆ..

17 ํŠธ๋ฆฌ ์ˆœํšŒ

17.1 ํŠธ๋ฆฌ ์ˆœํšŒ ํŠธ๋ฆฌ ์ˆœํšŒ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์–ด๋–ค ํŠธ๋ฆฌ์—์„œ๋“ ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋“ ์ง€, ๊ทธ๋ƒฅ ์ด์ง„ ํŠธ๋ฆฌ๋“ ์ง€ ๊ทธ ์™ธ์˜ ์–ด๋–ค ํŠธ๋ฆฌ๋“ค์—๋„ ๋‹ค ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ์ˆœํšŒ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฆ‰ ํŠธ๋ฆฌ์˜ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ํŠธ๋ฆฌ ์ˆœํšŒ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠธ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋งŽ์€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•˜๊ณ  ๋Œ€ํ‘œ์ ์œผ๋กœ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(Breadth First Search)๊ณผ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(Deapth First Search)๊ฐ€ ์žˆ๋‹ค. ์–ด๋–ค ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ด๋“  ๋ชจ๋“  ๋…ธ๋“œ๋“ค์„ ์ˆœํšŒํ•˜๋Š” ๊ฒƒ์€ ๋™์ผํ•˜๋‹ค. 17.2 ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(Breadth First Search)์€ ํŠธ๋ฆฌ์˜ ๊ฐ™์€ ๋ ˆ๋ฒจ์— ์žˆ๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๊ฑฐ์ณ๊ฐ€๋ฉฐ ์ˆœํšŒ๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. /* ํŠธ๋ฆฌ) 10 / \ 6 15 / \ / \ 3 8 12 20 ..

16 ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ

16.1 ํŠธ๋ฆฌ๋ž€? ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๋Š” ์ด์ง„ ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜์ด๊ณ , ์ด์ง„ ํŠธ๋ฆฌ๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํŠธ๋ฆฌ๋ž€ ๋ฌด์—‡์ผ๊นŒ? ํŠธ๋ฆฌ๋ž€, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ๋…ธ๋“œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค. ํ•˜์ง€๋งŒ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์™€ ๋‹ค๋ฅด๊ฒŒ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค. ๋ฆฌ์ŠคํŠธ๋Š” ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ํ•˜๋‚˜์˜ ์ค„๋กœ ์ด์–ด์ ธ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค. ํ•˜์ง€๋งŒ ํŠธ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๊ฐˆ๋ž˜์˜ ์ค„๋กœ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ๋…ธ๋“œ๋“ค์ด ์ž์‹ ๋ณด๋‹ค ๋” ๋‚ฎ์€ ๊ณณ์— ์žˆ์ง€ ์•Š์€ ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒฝ์šฐ์—๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ฆ‰, ๋…ธ๋“œ๊ฐ€ ํ˜•์ œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒฝ์šฐ, ์ž์‹์ด ๋ถ€๋ชจ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒฝ์šฐ์—๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ๋‹ค. ํŠธ๋ฆฌ์—์„œ๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋“ค์ด ๋ฃจํŠธ๋…ธ๋“œ์—์„œ ๋ฉ€์–ด์ง€๋Š” ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. ๋ฃจํŠธ๋Š” ํ•˜๋‚˜์ด์–ด์•ผ ..

15 ์Šคํƒ & ํ

15.1 ์Šคํƒ(Stack) ์Šคํƒ์ด๋ž€ ํ›„์ž…์„ ์ถœ ์›์น™์„ ๋”ฐ๋ฅด๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ผ์ปซ๋Š” ๋ง์ด๋‹ค. ์ฆ‰, ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์ œ๊ฑฐ๋˜๋Š” ๋ฐฉ์‹์˜ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์Šคํƒ์ด๋ผ๊ณ  ๋งํ•œ๋‹ค. ์„ค๊ฑฐ์ง€๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ์‹ฑํฌ๋Œ€์— ์Œ“์ธ ๊ทธ๋ฆ‡ ์ค‘ ๊ฐ€์žฅ์œ„์— ์žˆ๋Š” ๊ทธ๋ฆ‡์„ ํ•˜๋‚˜์”ฉ ์„ค๊ฑฐ์ง€ํ•ด ๋‚˜๊ฐ„๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค. ์Šคํƒ์„ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ  ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰, ์Šคํƒ์ด๋ผ๋Š” ๊ฐœ๋…์€ ํ›„์ž…์„ ์ถœ ์›์น™์„ ์ง€ํ‚ค๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๋“ค์„ ๋งํ•˜๋Š” ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์ด๋‹ค. 15.2 ๋ฐฐ์—ด๋กœ ์Šคํƒ ๊ตฌํ˜„ํ•˜๊ธฐ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ๋ฐฐ์—ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ push() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๊ณ , ์ œ๊ฑฐํ•  ๋•Œ pop() ๋ฉ”์„œ๋“œ๋งŒ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ shift(), unshift() ๋ฉ”์„œ๋“œ๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฐฐ์—ด์„ ์Šคํƒ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋œ๋‹ค. ํ›„์ž…์„ ์ถœ ์›์น™์„ ์ง€..