LCA(Lowest Common Ancestor) ์๊ณ ๋ฆฌ์ฆ์ด๋? ๋ ๊ฐ์ ๋ ธ๋์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต๋ ๋ถ๋ชจ๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋งํ๋ค. ์ด๋ป๊ฒ ์ฐพ์ ์ ์์๊น? ์์ ํธ๋ฆฌ์์ 9์ 13์ ๊ณตํต ๋ถ๋ชจ๋ ๋์ ๋ฐ๋ก ์์ ์๋ 2์ด๋ค. ๋ฌผ๋ก 9์ 13๊ณผ ๊ฐ์ด ๊ฐ์ Level์ ์๋ ๋ ธ๋์ธ ๊ฒฝ์ฐ์ ๋ ๋ ธ๋์ Level์ ๋์์ ํ๋์ฉ ์ค์ฌ๊ฐ๋ฉฐ ์ฐพ์ ์ ์๊ฒ ์ง๋ง ๋ง์ฝ ์๋ก ๋ค๋ฅธ Level์ ์๋ ๊ฒฝ์ฐ ๋์์ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋ค ํ๋ค ๊ณตํต ๋ถ๋ชจ๋ฅผ ์ฐพ์ ์ ์๋ค. ๋ฐ๋ผ์ Level์ด ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ํ๋์ ๋ ธ๋๋ฅผ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋๋ก ํ์ฌ ๊ฐ์ Level๋ก ๋ง์ถฐ์ค์ผ๋ง ํ๋ค. ์ ๋ฆฌํ์๋ฉด, ๋ ๊น์ Level์ ์๋ ๋ ธ๋์ Level์ ์ค์ฌ ์์ Level์ ์๋ ๋ ธ๋์ ๋์ผํ๊ฒ ๋ง์ถฐ์ค์ผ ํ๋ค. Level๊ณผ ๋ถ๋ชจ ๋ ธ๋ ๊ตฌํ๊ธฐ ์ฐ์ ..
์ด์์ฒด์ ์ ๊ตฌ์กฐ ์ปค๋ ํต, ๊ด๋ฆฌ์ ํ๋ก๊ทธ๋จ, ์์ฃผ ํ๋ก๊ทธ๋จ, ์ ์ด ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. ํ๊ตญ์ด๋ก ์๋งน์ด๋ผ๋ ๋ป, ํต์ฌ์ ์๋ฏธํ๋ค. ์์ฃผ ์ฐ์ด๋ ๊ธฐ๋ฅ(ํ๋ก์ธ์ค ๊ด๋ฆฌ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ...)๋ค์ ๋ชจ์๋์๊ธฐ์ ํญ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์๋ค. ์ ํธ๋ฆฌํฐ ์ด์์ฒด์ ์์ ์ปค๋์ ์ ์ธํ ๋ชจ๋ ๋ถ๋ถ์ ๋งํ๋ค. ๊ฐ๋ ์ฐ์ด๋ ๊ธฐ๋ฅ๋ค์ด๊ธฐ์ ํ์ํ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ค. ์์คํ ์ฝ ์ปค๋์๊ฒ ๋ฌด์์ธ๊ฐ๋ฅผ ์์ฒญํ๊ธฐ ์ํ API ์ด์์ฒด์ ์ ๊ธฐ๋ฅ ํ๋ก์ธ์ค ๊ด๋ฆฌ ์์ฑ/์ญ์ , ์ํ ๊ด๋ฆฌ ์์ ํ ๋น ํ๋ก์ธ์ค ๊ฐ ํต์ ๋ฐ ๋๊ธฐํ ๊ต์ฐฉ์ํ ํด๊ฒฐ PCB๋ฅผ ๊ฐ์ง์ผ๋ก์จ ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ๊ด๋ฆฌ ํ๋ก์ธ์ ๊ด๋ฆฌ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง ๊ด๋ฆฌ(์ฒ๋ฆฌ ์์ ๊ด๋ฆฌ, CPU ํ ๋น) ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ํ๋ก์ธ์ค์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํ์ ๊ฐ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์ญ ..
์ด์์ฒด์ ์ ํ๋์จ์ด์ ๊ด๊ณ ํ๋ก์ธ์์๊ฒ ์ฒ๋ฆฌํ ์์ ํ ๋น ๋ฐ ๊ด๋ฆฌ (ํ๋ก์ธ์ค ์์ฑ ๋ฐ ๊ด๋ฆฌ) ํ๋ก๊ทธ๋จ์ ํ๋ก์ธ์ ์ฌ์ฉ ์๊ฐ ๊ด๋ฆฌ, ๋ณต์ ํ๋ก๊ทธ๋จ๊ฐ ์ฌ์ฉ ์๊ฐ ์กฐ์จ ํ๋ก๊ทธ๋จ์ ์์ฒญ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํ์, ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ฑ ๋ฐ ๊ด๋ฆฌ, ๋ ผ๋ฆฌ์ฃผ์ -> ๋ฌผ๋ฆฌ์ฃผ์ ๋ณํ ์ฃผ๋ณ ์ฅ์น ์ฌ์ฉ์ ์ํ ์ธํฐํ์ด์ค ์ ๊ณต (์ฅ์น๋๋ผ์ด๋ฒ ๊ด๋ฆฌ) ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ํ์ผ ์์ฑ ๋ฐ ์ญ์ , ๋์คํฌ ๊ณต๊ฐ ๊ด๋ฆฌ ์ปดํจํฐ ํ๋์จ์ด๋ ํฌ๊ฒ ํ๋ก์ธ์, ๋ฉ๋ชจ๋ฆฌ, ์ฃผ๋ณ์ฅ์น๋ก ๋ถ๋ฅํ ์ ์๋ค. ํ๋ก์ธ์ ์ฐ์ฐ ์ํ(์ฐ์ฐ์ฅ์น)์ด ๊ฐ๋ฅํ๋ฉฐ ์ปดํจํฐ์ ๋ชจ๋ ์ฅ์น์ ๋์์ ์ ์ด(์ ์ด์ฅ์น)ํ๋ค. ๋ ์ง์คํฐ ํ๋ง๋๋ก ๋งํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ค ํ๋์ด๋ค. ์ผ๋ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ค๋ฅธ ์ ์ ํ๋ก์ธ์ ๋ด๋ถ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ผ๋ ์ ์ด๋ค. ์ปดํจํฐ์์ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฉ๋ชจ๋ฆฌ์ด๋ค...
์ธ๋ถ ์ ๋ ฌ(External Sort)์ด๋? ๋ฐ์ดํฐ๋ค์ ํฌ๊ธฐ๊ฐ ์ฃผ๊ธฐ์ต์ฅ์น๋ณด๋ค ์ปค ์ ๋ ฌ ํ ๋ฐ์ดํฐ๋ค์ ์ฃผ๊ธฐ์ต์ฅ์น์ ์จ์ ํ ์ ๋ ฅํ ์ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ์๋ฏธํ๋ค. ์๋ฅผ ๋ค์ด ์ฃผ๊ธฐ์ต์ฅ์น๊ฐ 1GB๊ณ , ๋ฐ์ดํฐ ํ์ผ์ด ์ด 100GB๋ผ๊ณ ํ์ ๋ ๋ด๋ถ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ ๋ ฌํ ์ ์๋ค. ์ธ๋ถ ์ ๋ ฌ ๊ณผ์ ๋ถํ ์ธ๋ถ ์ ๋ ฌ์ ์ฃผ๊ธฐ์ต์ฅ์น์์ ์์ฉํ ์ ์๋ ๋ฐ์ดํฐ์ ๋ํด์๋ง ์ฝ์ด, ๋ด๋ถ์ ๋ ฌ์ ์ํ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์กฐ ๊ธฐ์ต ์ฅ์น์ ๋ค์ ์ ์ฅํ๋ค. ์ฌ๊ธฐ์ ๋ด๋ถ ์ ๋ ฌ์ ์ํฉ์ ๋ง๋ ์ ๋ ฌ์ ์ฌ์ฉํ๋ฉด ๋๋ค. 1. ๋ฉ๋ชจ๋ฆฌ ๋งํผ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์จ๋ค. 2. ํ์ฉํ ๋ด๋ถ ์ ๋ ฌ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ค. 3. ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กฐ ๊ธฐ์ต ์ฅ์น์ ๊ธฐ๋กํ๋ค. ์ ๋ณต ์ ๋ ฌ๋์ด ๋๋ ์ง ๋ธ๋ก๋ค์ ํ๋์ ๋ธ๋ก์ผ๋ก ๋ง๋ค๊ธฐ ์ํด Merge ..
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋น๊ต Reference https://d2.naver.com/helloworld/0315536