๐๏ธ ์ฑ
& ๊ฐ์ ์ ๋ฆฌ/๐๏ธ ๋๊ตฌ๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๊ณ ์ถ์ ์ ์๋ค. ํต ์ ๋ ฌ ๊ฐ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํ ์ ์์ง๋ง O(NlogN)์ด๋ผ๋ ์๊ฐ์ด ํ์ํ๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์์ฃผ ์ ๋ ฌํด์ผ ํ๋ค๋ฉด ์ ์ด์ ๋ฐ์ดํฐ๋ฅผ ํญ์ ์ ๋ ฌ๋ ์์๋ก ์ ์งํ๋ ํธ์ด ํฉ๋ฆฌ์ ์ด๋ค. ์ ๋ ฌ๋ ๋ฐฐ์ด์ ์ฝ๊ธฐ O(1), ๊ฒ์ O(logN), ์ฝ์
O(N), ์ญ์ O(N)์ด๋ค. ์์๋ฅผ ์ ์งํ๋ฉด์๋ ๋น ๋ฅธ ๊ฒ์๊ณผ ์ฝ์
, ์ญ์ ๊ฐ ๊ฐ๋ฅํ ์๋ฃ ๊ตฌ์กฐ๊ฐ ํ์ํ๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น? ์ ๋ ฌ๋ ๋ฐฐ์ด๋ ํด์ ํ
์ด๋ธ๋ ์๋ฒฝํ์ง ์๋ค. ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ๋ณด์. 1. ํธ๋ฆฌ ํธ๋ฆฌ(tree)๋ ๋
ธ๋ ๊ธฐ๋ฐ ์๋ฃ ๊ตฌ์กฐ์ด๋ฉฐ, ํธ๋ฆฌ์ ๊ฐ ๋
ธ๋๋ ์ฌ๋ฌ ๋
ธ๋๋ก์ ๋งํฌ๋ฅผ ํฌํจํ ์ ์๋ค. ๊ฐ์ฅ ์์์ ์์นํ ๋
ธ๋๋ฅผ ๋ฃจํธ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฃจํธ๋ ํธ๋ฆฌ์ ๊ผญ๋๊ธฐ๋ค. ๋
ธ๋๋ ๋ถ๋ชจ์ ์์ ๋
ธ๋๊ฐ ์์ ์ ์๋ค. ํจ..
๐๏ธ ์ฑ
& ๊ฐ์ ์ ๋ฆฌ/๐๏ธ ๋๊ตฌ๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
๋
ธ๋Node: ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ ๊ณณ๊ณณ์ ํฉ์ด์ ธ ์๋ ๋ฐ์ดํฐ ์กฐ๊ฐ ๋
ธ๋ ๊ธฐ๋ฐ ์๋ฃ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ์งํ๊ณ ์ ๊ทผํ๋ ์๋ก์ด ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋๋ฐ ์ฑ๋ฅ์ ํฐ ์ด์ ์ด ๋ง๋ค. 14์ฅ์์๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋
ธ๋ ๊ธฐ๋ฐ ์๋ฃ๊ตฌ์กฐ์ธ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ดํด๋ณธ๋ค. 1. ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์ฐ๊ฒฐ ๋ฆฌ์คํธLinked List๋ ๋ฐฐ์ด๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํญ๋ชฉ์ ๋ฆฌ์คํธ๋ฅผ ํํํ๋ ์๋ฃ ๊ตฌ์กฐ๋ค. ์ปดํจํฐ์ ๋ค์ด ์๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฐ์ดํฐ์กฐ๊ฐ์ ์ ์ฅํ๋ ์
๋ค์ ๊ฑฐ๋ํ ์งํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ค. ์ฝ๋์์ ๋ฐฐ์ด์ ์์ฑํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ฐ์๋ ๋น ์
๊ทธ๋ฃน์ ์ฐพ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋๋ก ํ ๋นํ๋ค. ์ปดํจํฐ๋ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ํ ๋ฒ์ ์ ๊ทผํ ์ ์์ผ๋ฏ๋ก ๋ฐฐ์ด ๋ด ์ด๋ค ์ธ๋ฑ์ค๋ ๋ฐ๋ก ๊ฐ ์ ์๋ค. ๊ทธ๋ฌ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋ด ๋ฐ์ดํฐ๋ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ด ์๋๋ผ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ ์ ์ฒด..
๐๏ธ ์ฑ
& ๊ฐ์ ์ ๋ฆฌ/๐๏ธ ๋๊ตฌ๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
์ปดํจํฐ ์ธ์ด์๋ ๋๋ถ๋ถ ๋ด์ฅ ์ ๋ ฌ ํจ์๊ฐ ์์ด ์ฌ์ฉ์๊ฐ ์ค์ค๋ก ๊ตฌํํ๋ ๋ฐ ๋๋ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ ์๊ปด์ค๋ค. ์ปดํจํฐ ์ธ์ด ์ค ๋๋ค์๊ฐ ๋ด๋ถ์ ์ผ๋ก ์ฑํํ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ํต ์ ๋ ฌ(quick sort)์ด๋ค. ํต ์ ๋ ฌ์ ์ฌ๊ท๋ฅผ ์ฌ์ฉํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๊ทธ ๋์ ๋ฐฉ์์ ์์๋ณด๋ฉฐ ์ฌ๊ท๋ฅผ ์ฌ์ฉํด ์ด๋ป๊ฒ ์๊ณ ๋ฆฌ์ฆ์ ์๋๋ฅผ ํฅ์์ํค๋์ง ๋ฐฐ์ธ ์ ์๋ค. ํต ์ ๋ ฌ์ ๋งค์ฐ ๋น ๋ฅธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํนํ ํ๊ท ์๋๋ฆฌ์ค์์ ๋งค์ฐ ํจ์จ์ ์ด๋ค. ์ต์
์ ์๋๋ฆฌ์ค(์ญ์ ์ ๋ ฌ๋ ๋ฐฐ์ด)์์๋ ์ฝ์
์ ๋ ฌ์ด๋ ์ ํ ์ ๋ ฌ๊ณผ ์ฑ๋ฅ์ด ์ ์ฌํ๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์์๋ ํจ์ฌ ๋น ๋ฅด๋ค. ํต ์ ๋ ฌ์ ๋ถํ (partitioning)์ด๋ผ๋ ๊ฐ๋
์ ๊ธฐ๋ฐํ๋ค. 1. ๋ถํ ๋ฐฐ์ด์ ๋ถํ ํ๋ค๋ ๊ฒ์ ๋ฐฐ์ด๋ก๋ถํฐ ์์์ ์, ์ฆ ํผ๋ฒ์ ๊ฐ์ ธ์ ํผ๋ฒ๋ณด๋ค ์์ ์๋ ํผ๋ฒ์ ์ผ์ชฝ์, ํฐ ์..
๐๏ธ ์ฑ
& ๊ฐ์ ์ ๋ฆฌ/๐๏ธ ๋๊ตฌ๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
11์ฅ์์๋ ์ฌ๊ท์ ์ผ๋ก ์์ฑํ๋ ๋ฒ๊ณผ ์ฌ๊ท๋ก ๋ณด๋ค ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฒ์ ๋ฐฐ์ ๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ท๋ก ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๋ ์์ด๋ ์ ๋๋ก ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ๋ ํ๋ค. ์ฌ๊ท๋ฅผ ์๋ชป ์ฌ์ฉํ ๊ฒฝ์ฐ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๊ฐ O(2^N)๊ณผ ๊ฐ์ ๊ฐ์ฅ ๋๋ฆฐ ๋น
์ค ์นดํ
๊ณ ๋ฆฌ์ ์ํ๊ฒ ๋ ์ ์๋ค. 12์ฅ์์๋ ์ฌ๊ท์ ์๋๋ฅผ ๋๋ฆฌ๊ฒ ๋ง๋๋ ๊ฐ์ฅ ํํ ๊ฑธ๋ฆผ๋์ ์ฐพ๊ณ ๊ทธ๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ๋น
์ค ๊ด์ ์์ ์ด๋ป๊ฒ ๋ํ๋ด๋์ง, ์ด๋ป๊ฒ ๊ฐ์ ํ๋์ง๋ฅผ ๋ฐฐ์ด๋ค. 1. ๋ถํ์ํ ์ฌ๊ท ํธ์ถ ๋์ผํ ํ์ ๋ฌธ์ ์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๋ฌ ๋ฒ ํธ์ถํ๋๋ฐ, ๋์ผํ ์ธ์๋ฅผ ๋ฃ์์ ๋ ํญ์ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ๋ 2. ๋น
์ค๋ฅผ ์ํ ์์ ๊ฐ์ ์ด๋ฌํ ์ถ๊ฐ์ ์ธ ์ฌ๊ท ํธ์ถ์ ์ ๋ถ ์์จ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์ฝ๋์์ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์์ ์ ์ฅ..
๐๏ธ ์ฑ
& ๊ฐ์ ์ ๋ฆฌ/๐๏ธ ๋๊ตฌ๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
์ด ์ฑํฐ์์๋ “์ฌ๊ท์ ์ผ๋ก ์์ฑํ๋” ๋ฒ์ ์ฝ๊ฒ ์ตํ ์ ์๋ ๋ช ๊ฐ์ง ๋น๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋๋ค. 11์ฅ์์๋ ์ฌ๊ท์ ํจ์จ์ฑ์ ๋
ผํ์ง ์๋๋ค. ์ฌ์ค ์ฌ๊ท๋ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋์ ๋ชน์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ค. 1. ์ฌ๊ท ์นดํ
๊ณ ๋ฆฌ: ๋ฐ๋ณต ์คํ ๊ฐ์ฅ ์ฌ์ด ์นดํ
๊ณ ๋ฆฌ๋ก, ๋ฐ๋ณต์ ์ผ๋ก ํ ์์
์ ์คํํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. 10์ฅ์์ ์ ๊น ํ์ด๋ณธ ๋๋ ํ ๋ฆฌ ์ถ๋ ฅ ์๊ณ ๋ฆฌ์ฆ ์ญ์ ๋ฐ๋ณต ์คํ ์นดํ
๊ณ ๋ฆฌ์ ํ ์๋ค. 1.1 ์ฌ๊ท ํธ๋ฆญ: ์ถ๊ฐ ์ธ์ ๋๊ธฐ๊ธฐ ์ซ์ ๋ฐฐ์ด์ ๋ฐ์ ๋ฐฐ์ด ๋ด ๊ฐ ์ซ์๋ฅผ ๋ ๋ฐฐ๋ก ๋ง๋๋ ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋ ค๊ณ ํ๋ค. ๋จ ์ ๋ฐฐ์ด์ ๋ง๋๋ ๊ฒ์ด ์๋๋ผ ๋ฐฐ์ด ์์ฒด์์ ์์ ํ๊ฒ ๋ค. ์ ์๋ฆฌ(in-place) ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์(๋ณ๊ฒฝ)ํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์์ ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ์ง๋ค. ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์๋ ๋ฐฐ์ด์ ๊ทธ๋๋ก ๋๊ณ “๋ ..