๋ณํฉ ์ ๋ ฌ์ ๊ฐ๋ ๋ณํฉ ์ ๋ ฌ์ด๋? ํ๋์ ๋ฆฌ์คํธ๋ฅผ ๋ ๊ฐ์ ๊ท ๋ฑํ ํฌ๊ธฐ๋ก ์ต๋ํ ๋ถํ ํ๊ณ ๋ถํ ๋ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ์์๋๋ก ํฉํ๋ ๋ฐฉ์์ด๋ค. ๋ถํ ๋ ๋ฆฌ์คํธ๋ฅผ ์์๋๋ก ํฉ์ณ์ ๋ด๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ๊ฐ ์ถ๊ฐ์ ์ผ๋ก ํ์ํ๋ค. ๊ฐ์ฅ ์์ ๋จ์๋ก ์ ๋ฐ์ฉ ์ชผ๊ฐ ํ ๊ฐ์ฅ ์์ ๋จ์๋ถํฐ ๋ค์ ํฉ์ณ๋๊ฐ๋๋ฐ ์ด ํฉ์ณ๋๊ฐ๋ ๊ณผ์ ์์ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ์ด ๋๋ค. Divide and Conquer Merge Sort์ ํด๊ฒฐ ์ ๋ต ๋ฌธ์ ๋ฅผ ์์ 2๊ฐ์ ๋ฌธ์ ๋ก ๋ถ๋ฆฌํ๊ณ ๊ฐ๊ฐ์ ํด๊ฒฐํ ๋ค์, ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์์ ์๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ ๋ต Divide and Conquer ๋ฐฉ์์ ๋๊ฐ ์ฌ๊ท ํธ์ถ์ ์ด์ฉํ์ฌ ๊ตฌํํจ ๋์ ๋ฐฉ์๊ณผ ๊ตฌํ 1. ๋ฐ์ดํฐ๋ค์ ์ ๋ฐ์ผ๋ก ๋๋๋ค. (๋ถํ ) 2. ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ์์ ๋จ์๋ก ๋ถํดํ ํ ๋งจ ๋ฐ์์ ๋ถํฐ ์ฐจ๋ก๋๋ก ํฉ๋ณ์ ์งํ..
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ด๋? ํ๋์ ์ ์ ์์ ๋ชจ๋ ์ ์ ์ผ๋ก์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ Single source shortest paths problem ๋ก์ง ๋ชจ๋ ์ ์ ๋ค์ ์ฒ์์ ๋ฌดํ๋ ๊ฐ์ ๊ฐ๋๋ค. ์ ์ A์์ ์ ์ B๊ฐ ์ด์ด์ง๋ฉด ์ ์ A๊น์ง์ ์ต๋จ๊ฑฐ๋ฆฌ + A์์ B๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค. ๋ง์ฝ B๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฐ(์ฆ, A์์ B๋ก ์ด์ด์ง๋ ๋ค๋ฅธ ๊ฒฝ๋ก์ ์ํ ๊ฐ)๊ณผ 2๋ฒ์์ ๊ณ์ฐํ ๊ฐ๊ณผ ๋น๊ตํ์ฌ ํ์๊ฐ ๋ ์๋ค๋ฉด ๊ฐฑ์ ํ๋ค. ๊ฐ์ฅ ์์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์ ์ ๋ถํฐ ์ด์ด์ ๋ฐ๋ณตํ๋ค. (๊ฐ์ฅ ์์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์ ์ ๋ถํฐ ์์ํ๋ ์ด์ ๋ ์์ง ์์ ๊ฐ๋ถํฐ ์์๋๋ฉด ์ธ๋ชจ์๋ ์ฐ์ฐ์ด ์งํ๋๊ธฐ ๋๋ฌธ์ด๋ฉฐ, ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด๋ผ ์ ์๋ค.) ์์ ๊ฐ์ผ๋ก ๊ฐฑ์ ์ด ๋์ด์ผ ..
์ ํ ์ ๋ ฌ์ ๊ฐ๋ ์ ํ ์ ๋ ฌ์ด๋? ๋ฃ์ ์์น๋ ์ด๋ฏธ ์ ํด์ ธ ์๊ณ , ๊ทธ ์์น์ ์ด๋ ํ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์์ง ์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋์ ๋ฐฉ์ 1. ๋ฆฌ์คํธ ๊ธธ์ด(n)์ -1 ๋งํผ ๋ฐ๋ณตํ๋ค. (์์์๋ถํฐ ์์น๋ฅผ ์ ํ๊ฒ ๋๋ฉด ๋ง์ง๋ง ๊ฐ์ ์๋์ผ๋ก ์์น๊ฐ ์ ํด์ง๋ค) 1-2. ์ ํ๋ ์ต์๊ฐ๊ณผ ์ต์๊ฐ์ด ๋ค์ด๊ฐ ์์น์ ๊ฐ๊ณผ ๊ต์ฒดํ๋ค. 1-1. ๊ฐ์ด ๋ค์ด๊ฐ ์์น๋ถํฐ ๋ง์ง๋ง ๊ฐ๊น์ง ์ต์๊ฐ์ ์ฐพ๋๋ค. void sort() { int min; // 1. ๊ฐ์ด ๋ค์ด๊ฐ ์์น๋ฅผ ์ ํํ๋ ๋ฐ๋ณต๋ฌธ for(int i=0; i
์ธํ์ ๋ฌธ์ ๋? ๊ฐ์ฅ ์ ๋ช ํ ์ต์ ํ ๋ฌธ์ ์ค ํ๋๋ก Traveling Sales-man Problem (TSP)๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฌธ์ ์ด๋ค. ์ด๋ค ๋๋ผ์ n(2
์ฝ์ ์ ๋ ฌ์ ๊ฐ๋ ์ฝ์ ์ ๋ ฌ์ด๋? ์ ํ ์ ๋ ฌ๊ณผ ๋ค๋ฅด๊ฒ ๋ฐ์ดํฐ์ ์ฝ์ ํ ์์น๋ฅผ ์ฐพ๋ ์ ๋ ฌ์ด๋ค. ํ์ฌ Key ์์ ์์นํ๋ ๋ฐ์ดํฐ๋ค์ ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ค์ด๋ฉฐ, ์ ๋ ฌ์ด ์๋ฃ๋ ๋ฐ์ดํฐ๋ค ์ฌ์ด์ Key์ ์์น๋ฅผ ์ฐพ๋ ๊ฒ์ด ์ฝ์ ์ ๋ ฌ์ด๋ค. ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐ์ดํฐ์ผ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋น๊ต๋ฅผ ๋จ ํ๋ฒ๋ง ์ํํ๊ธฐ ๋๋ฌธ์ ์ต์ ์ ๊ฒฝ์ฐ O(N)์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋ค. ๋์ ๋ฐฉ์ ๋ฆฌ์คํธ ๊ธธ์ด(n)์ -1 ๋งํผ ๋ฐ๋ณตํ๋ค. (๋งจ ์์ ๋ฐ์ดํฐ๋ ์ ์ธํ๋ค.) 1-2. ํด๋น ์์น์ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ค. 1-1. ํ์ฌ ์ ํ๋ ๋ฐ์ดํฐ์ ์์ ์์นํ ์ ๋ ฌ๋ ๊ฐ๋ค์ ๋น๊ตํ๋ฉฐ ์ฝ์ ํ ์์น๋ฅผ ์ฐพ๋๋ค. void sort(int[] numbers) { // 1. for(int i=1; i=0 && numbers[j] > temp; j--) { nu..