์ฐ์ ์์ ํ๋? ์ฐ์ ์์์ ๊ฐ๋ ์ ํ์ ๋์ ํ ์๋ฃ ๊ตฌ์กฐ ๋ฐ์ดํฐ๋ค์ด ์ฐ์ ์์๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋๊ฐ๋ค. ์ฐ์ ์์ ํ๋ ๋ฐฐ์ด, ์ฐ๊ฒฐ๋ฆฌ์คํธ, ํ ์ผ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค. ์ด ์ค์์ ํ(heap)์ผ๋ก ๊ตฌํํ๋ ๊ฒ์ด ๊ฐ์ฅ ํจ์จ์ ์ด๋ค. ํ์ด๋? ์์ ์ด์งํธ๋ฆฌ ๊ตฌ์กฐ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๋ฝ์๋ผ ๋ ์ฌ์ฉํ๊ธฐ ์ข์ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ํ์ ์์ ํ ์ ๋ ฌ๋ ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์๋ Level์ ๋ฐ๋ฅธ ์ ๋ ฌ๋ง ์ด๋ฃจ์ด์ ธ ๋์จํ ์ ๋ ฌ์ํ๋ฅผ ์ ์งํ๋ค. (Max Heap์ธ ๊ฒฝ์ฐ ๋ถ๋ชจ๊ฐ ์์๋ณด๋ค ํฐ ๊ฐ์ ๊ฐ์ง๊ณ ์๊ณ , Min Heap์ธ ๊ฒฝ์ฐ ๋ถ๋ชจ๊ฐ ์์๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ด์ผ ํจ) ํ์ ์ข ๋ฅ Max Heap ๋ฃจํธ ๋ ธ๋์๋ ํญ์ ๊ฐ์ฅ ํฐ ๊ฐ์ด ์์นํ๊ณ ์์ผ๋ฉฐ, ๋ถ๋ชจ ๋ ธ๋๊ฐ ์์ ๋ ธ๋๋ค๋ณด๋ค ๋ฌด์กฐ๊ฑด ๊ฐ์ด ์ปค์ผํ๋ค. M..
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ด ๋ญ๊น? ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ด๋ ํ๋์ ์ถ๋ฐ์ ์์ ๋๋ฌํ ์ ์๋ ๋ชจ๋ ๋์ฐฉ์ ์ ๋ํ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋์ ์กฐ๊ฑด์ด ์๋๋ฐ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ ๋ค์ ๋น์ฉ์ด ๋ชจ๋ ์์์ฌ์ผ๋ง ์ ์ฉ์ด ๊ฐ๋ฅํ๋ค. ๋ง์ฝ ์์ ๋น์ฉ์ ๊ฐ์ง ๊ฐ์ ์ด ์กด์ฌํ๋ค๋ฉด ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ ์ ์๋ค. ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ๋ฉ์ธ ์์ด๋์ด๋ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ(DP)์ด๋ค. ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ์กด์ ๊ตฌํด๋์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์ ํด๋๊ฐ๋ ๋ฉ์ธ ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. (์ต๋จ ๊ฒฝ๋ก๋ ์ต๋จ ๊ฒฝ๋ก๋ค์ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค) ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์ก๋ (์ข ๋ ์์ธํ ์์๋ณผ ๊ฒ) ์๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ O(V^2)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ ์์์ง..
ํ ์ด๋ธ์ ๋ํด ์ ๊ทํ๋ฅผ ํด์ผํ๋ ์ด์ ๋ Anomaly(์ด์ ํ์)์ด ๋ํ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ฝ์ ์ด์ ๋ถํ์ํ ์ ๋ณด๋ฅผ ํจ๊ป ์ ์ฅํ์ง ์๊ณ ์๋ ์ด๋ค ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ Faculty and Courses ํ ์ด๋ธ์ Course Code๊ฐ ์๋ Faculty์ธ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ์ฝ์ ํด์ผ ํ ๊น? → ์์์ ํ์ํ๋ ๋ถํ์ํ ์ ๋ณด๊ฐ ์ฝ์ ๋์ด์ผํจ! ๊ฐฑ์ ์ด์ ์ผ๋ถ๋ง ๋ณ๊ฒฝํ์ฌ, ๋ฐ์ดํฐ๊ฐ ๋ถ์ผ์น ํ๋ ๊ฒฝ์ฐ ๊น์ฌ๋ → ๊น์์ฐ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๊น์ฌ๋์ด ๊น์์ฐ์ผ๋ก ๋ฐ๋์ด์ผ๋ง ํ๋ค. → ์ฒซ๋ฒ์งธ ํํ๊ณผ ์ธ๋ฒ์งธ ํํ ๊ฐ์ ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฐ์ ์ญ์ ์ด์ ํํ ์ญ์ ๋ก ์ธํด ๊ผญ ํ์ํ ๋ฐ์ดํฐ๊น์ง ํจ๊ป ์ญ์ ๋๋ ๊ฒฝ์ฐ ENG-206 ๊ฐ์๋ฅผ ์ ๊ฑฐํ๋ ค๊ณ 389๋ฒ ํํ์ ์ ๊ฑฐํ๋๋ Dr.Giddens์ ์ ๋ณด๋ ์ญ์ ๋์๋ค. → ๊ผญ..
๊ธฐ์ ์ ๋ ฌ์ด๋? ๋ฎ์ ์๋ฆฌ์๋ถํฐ ๋น๊ตํ์ฌ ์ ๋ ฌํด๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ฉฐ ๋น๊ต ์ฐ์ฐ์ด ๋ถํ์ํ ์ ๋ ฌ์ด๋ค. ์๋ฆฟ์์ ํด๋น๋๋ ๊ฐ์ ๋ฐ๋ผ ๋ฒํท์ ๋ฐ์ดํฐ๋ค์ ์ฝ์ ํ๊ธฐ ๋๋ฌธ์ ๋น๊ต ์ฐ์ฐ์ด ๋ถํ์ํ์ง๋ง ์๋ฆฟ์๋งํผ์ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ์ํ๋ค. (๋ํ ์๋ฆฟ์๋งํผ์ ์ถ๊ฐ์ ์ธ ๋ก์ง๋ ํ์ํ๋ค) ์๋ฆฟ์๊ฐ ๋น์ ์์ ์ผ๋ก ํฐ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ค๋ฉด ์ธ๋ฐ์๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ฅผ ์ฐจ์งํ๊ฒ ๋๋ค. ๊ตฌํ๊ณผ ์๊ฐ ๋ณต์ก๋ ์๋ฐ๋ฅผ ์ด์ฉํ ๊ตฌํ public static void main(String[] args) { RadixSort radixSort = new RadixSort(); for(int i=0; i
์ต๋ ๊ณต์ฝ์ ๊ตฌํ๊ธฐ ์ ํด๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋? ์ต๋ ๊ณต์ฝ์(GCD)๋ฅผ ๊ตฌํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, gcd(a,b)์ (r=a%b๋ผ๊ณ ํ ๋), gcd(b,r)์ ์ต๋ ๊ณต์ฝ์๋ ๊ฐ๋ค. ์ฆ, gcd(a,b) == gcd(b,r)์ด๋ค. ์ด ์ฑ์ง์ ๋ฐ๋ผ gcd(a,b) == gcd(b, a%b) == gcd(a%b, (a%b)%b).... ๋ฐ๋ณตํ์ฌ ๋๋จธ์ง๊ฐ 0์ด ๋์์ ๋ ๋๋์ด์ง๋ ์๊ฐ a์ b์ ์ต๋๊ณต์ฝ์๊ฐ ๋๋ค. ์ ๋ฆฌํ์๋ฉด gcd(a,b) -> cdg(a, a%b) .... -> gcd(x, 0)์ด๋ฉด a์ b์ ์ต๋ ๊ณต์ฝ์๋ x์ด๋ค. ๊ตฌํ private static int gcd(int a, int b) { if(b == 0) return a; return gcd(b, a%b); } ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ..