์๊ฐ ๋ณํฉ ์ ๋ ฌ(Merge Sort)์ ๋ํ์ ์ธ ๋ถํ ์ ๋ณต(Divede and Conquer) ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ก, ๋ฆฌ์คํธ๋ฅผ ๋ฐ์ผ๋ก ๋๋ ๋ค ๊ฐ๊ฐ์ ์ฌ๊ท์ ์ผ๋ก ์ ๋ ฌํ๊ณ , ์ ๋ ฌ๋ ๋ ๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ํฉ์ณ์ ์ ๋ ฌ๋ ํ๋์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์๋ ๊ฐ๋ ๐ก ๋ณํฉ ์ ๋ ฌ์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ธ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ถํ (Divide): ์ ๋ ฅ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ํฌ๊ธฐ์ ๋ ๊ฐ์ ๋ถ๋ถ ๋ฆฌ์คํธ๋ก ๋ถํ ํฉ๋๋ค. ์ด๋ ๋ถํ ์ ๋ฆฌ์คํธ์ ์ค๊ฐ ์ง์ ์์ ์ํ๋ฉ๋๋ค. ์ ๋ณต(Conquer): ๊ฐ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ์ฌ๊ท์ ์ผ๋ก ๋ณํฉ์ ๋ ฌ์ ์ด์ฉํด ์ ๋ ฌํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ ๋ ฅ ๋ฆฌ์คํธ์ ํฌ๊ธฐ๊ฐ ์ถฉ๋ถํ ์์์ง ๋๊น์ง ๋ฐ๋ณต๋ฉ๋๋ค. ๋ณํฉ(Merge): ์ ๋ ฌ๋ ๋ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ํ๋์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ก ๋ณํฉํฉ๋๋ค. 0๊ฐ ์์, 1๊ฐ ์์ ๋ฐฐ์ด์ด ..
์๊ฐ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ ๋๋ค. ๋ฐฐ์ด์ ์์๋ฅผ ์์๋๋ก ํ์ํ๋ฉฐ, ๊ฐ ์์๋ฅผ ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐฐ์ด ๋ถ๋ถ๊ณผ ๋น๊ตํ์ฌ ์ ์ ํ ์์น์ ์ฝ์ ํ๋ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ์ ์งํํฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ค๋ฅธ ๊ณ ๊ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ํฐ ๋ฐฐ์ด์ด๋ ์๊ฐ์ ํ์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ ์ฝ๋ // ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ function insertionSort(array) { for (let i = 1; i = 0 && array[j] > current) { array[j + 1] = array[j]; j--; } array[j ..
์๊ฐ ์ฃผ์ด์ง ๋ฆฌ์คํธ์์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ ํํ์ฌ ๋งจ ์์ ์์น์ํค๊ณ , ๊ทธ๋ค์์ผ๋ก ์์ ๊ฐ์ ์ฐพ์ ๋ ๋ฒ์งธ ์์น์ ์์น์ํค๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์์ผ๋ก ๋ณด๋ด์ง ์์๋ ๋ ์ด์ ์์น๊ฐ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๊ธฐ๋ณธ ๊ฐ๋ ์ ํ ์ ๋ ฌ์ ๊ฐ๋จํ๋ฉด์๋ ์ดํดํ๊ธฐ ์ฝ๊ณ ์ฝ๋ ๊ตฌํ์ด ์ฌ์ด ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง, ๊ทธ๋งํผ ์๊ฐ ๋ณต์ก๋๊ฐ ๋์ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ ๋๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๋จ์ ์ด ์์ต๋๋ค. ์ ํ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋๋ O(N^2)์ผ๋ก, ์ ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ์ฑ๋ฅ ์ ํ๊ฐ ๋์ฑ ์ฌํด์ง๋๋ค. ์์ ์ฝ๋ function selectionSort(arr) { const n = arr.length; for (let i = 0; i < n - 1; i++) { let minIndex = i; for (let..
์๊ฐ ๋ฒ๋ธ ์ ๋ ฌ(Bubble Sort)์ ๊ฐ์ฅ ๊ฐ๋จํ๊ณ ๊ธฐ๋ณธ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ก, ์ด๋ฆ์์๋ ์ ์ ์๋ฏ์ด ๋ฐฐ์ด์ ์์๋ฅผ '๊ฑฐํ(Bubble)'์ฒ๋ผ ์๋ก ๊ตํํด ๊ฐ๋ฉฐ ์ ๋ ฌํ๋ ๋ฐฉ์์ ๋๋ค. ์ฆ, ์๋ก ์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํด๊ฐ๋ฉฐ ์ค๋ฆ์ฐจ์์ด๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ์ ์งํํฉ๋๋ค. ๊ธฐ๋ณธ ๊ฐ๋ ๋ฒ๋ธ ์ ๋ ฌ์ ๊ฐ๋ ์ ๋ง์ฝ ์ซ์ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ์ํฉ์์ ๋ ํฐ ์ซ์๊ฐ ํ ๋ฒ์ ํ๋์ฉ ๋ค๋ก ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ค ํญ๋ชฉ์ด ๋ ํฌ๋ฉด ๊ตํํ๊ณ , ๋ค์ ํญ๋ชฉ๊ณผ ๋น๊ตํ๊ณ , ๋ค์ ํญ๋ชฉ๋ณด๋ค ๋ ํฌ๋ฉด ๋ ๊ตํ์ ํ๊ณ , ๋ค์ ๋ค์ ํญ๋ชฉ๊ณผ ๋น๊ตํ๋ฉด์ ๋ฐ๋ณต์ ํฉ๋๋ค. ์ค๋ฆ์ฐจ์์ ์ํฉ์์๋ ๊ฐ์ฅ ํฐ ๊ฐ์ด ์๋จ์ ํฅํด์ ๊ฐ์ ์ ๋ ฌํ๋ ๋ฐฉ์์ผ๋ก ๋ชฉ๋ก์ ๋ง๋ญ๋๋ค. ์์ ์ฝ๋ #1 function bubbleSort(arr)..
๋์ด๋: ๊ณจ๋ 4 ํ์ด ์๊ณ ๋ฆฌ์ฆ: BFS ๋ฌธ์ N×Nํฌ๊ธฐ์ ๋ ์ด ์๊ณ , ๋ ์ 1×1๊ฐ์ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ๊ฐ๊ฐ์ ๋ ์๋ ๋๋ผ๊ฐ ํ๋์ฉ ์กด์ฌํ๋ฉฐ, rํ c์ด์ ์๋ ๋๋ผ์๋ A[r][c]๋ช ์ด ์ด๊ณ ์๋ค. ์ธ์ ํ ๋๋ผ ์ฌ์ด์๋ ๊ตญ๊ฒฝ์ ์ด ์กด์ฌํ๋ค. ๋ชจ๋ ๋๋ผ๋ 1×1 ํฌ๊ธฐ์ด๊ธฐ ๋๋ฌธ์, ๋ชจ๋ ๊ตญ๊ฒฝ์ ์ ์ ์ฌ๊ฐํ ํํ์ด๋ค. ์ค๋๋ถํฐ ์ธ๊ตฌ ์ด๋์ด ์์๋๋ ๋ ์ด๋ค. ์ธ๊ตฌ ์ด๋์ ํ๋ฃจ ๋์ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋๊ณ , ๋ ์ด์ ์๋ ๋ฐฉ๋ฒ์ ์ํด ์ธ๊ตฌ ์ด๋์ด ์์ ๋๊น์ง ์ง์๋๋ค. ๊ตญ๊ฒฝ์ ์ ๊ณต์ ํ๋ ๋ ๋๋ผ์ ์ธ๊ตฌ ์ฐจ์ด๊ฐ L๋ช ์ด์, R๋ช ์ดํ๋ผ๋ฉด, ๋ ๋๋ผ๊ฐ ๊ณต์ ํ๋ ๊ตญ๊ฒฝ์ ์ ์ค๋ ํ๋ฃจ ๋์ ์ฐ๋ค. ์์ ์กฐ๊ฑด์ ์ํด ์ด์ด์ผํ๋ ๊ตญ๊ฒฝ์ ์ด ๋ชจ๋ ์ด๋ ธ๋ค๋ฉด, ์ธ๊ตฌ ์ด๋์ ์์ํ๋ค. ๊ตญ๊ฒฝ์ ์ด ์ด๋ ค์์ด ์ธ์ ํ ์นธ๋ง์ ์ด์ฉํด ์ด๋ํ ..
๋์ด๋: ๊ณจ๋ 3 ํ์ด ์๊ณ ๋ฆฌ์ฆ: BFS ๋ฌธ์ N×M์ ๋ชจ๋์ข ์ด ์์ ์์ฃผ ์์ ์น์ฆ๊ฐ ๊ณผ ๊ฐ์ด ํ์๋์ด ์๋ค. ๋จ, N ์ ์ธ๋ก ๊ฒฉ์์ ์์ด๊ณ , M ์ ๊ฐ๋ก ๊ฒฉ์์ ์์ด๋ค. ์ด ์น์ฆ๋ ๋๋ ๋ณด๊ด์ ํด์ผ๋ง ํ๋๋ฐ ์ค๋ด์จ๋์ ๋ด์ด๋์ผ๋ฉด ๊ณต๊ธฐ์ ์ ์ดํ์ฌ ์ฒ์ฒํ ๋ น๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฌํ ๋ชจ๋์ข ์ด ๋ชจ์์ ์น์ฆ์์ ๊ฐ ์น์ฆ ๊ฒฉ์(์ ์ ์ ์ฌ๊ฐํ ๋ชจ์)์ 4๋ณ ์ค์์ ์ ์ด๋ 2๋ณ ์ด์์ด ์ค๋ด์จ๋์ ๊ณต๊ธฐ์ ์ ์ดํ ๊ฒ์ ์ ํํ ํ์๊ฐ๋ง์ ๋ น์ ์์ด์ ธ ๋ฒ๋ฆฐ๋ค. ๋ฐ๋ผ์ ์๋ ๋ชจ์๊ณผ ๊ฐ์ ์น์ฆ(ํ์์ผ๋ก ํ์๋ ๋ถ๋ถ)๋ผ๋ฉด C๋ก ํ์๋ ๋ชจ๋ ์น์ฆ ๊ฒฉ์๋ ํ ์๊ฐ ํ์ ์ฌ๋ผ์ง๋ค. ์ ๊ฐ์ด ์น์ฆ ๋ด๋ถ์ ์๋ ๊ณต๊ฐ์ ์น์ฆ ์ธ๋ถ ๊ณต๊ธฐ์ ์ ์ดํ์ง ์๋ ๊ฒ์ผ๋ก ๊ฐ์ ํ๋ค. ๊ทธ๋ฌ๋ฏ ๋ก ์ด ๊ณต๊ฐ์ ์ ์ดํ ์น์ฆ ๊ฒฉ์๋ ๋ น์ง ์๊ณ C๋ก ํ์๋ ์น์ฆ..
๋์ด๋: ๊ณจ๋ 2 ํ์ด ์๊ณ ๋ฆฌ์ฆ: BFS ๋ฌธ์ ์์ฃผ ๋จผ ๋ฏธ๋์ ์ฌ๋๋ค์ด ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋์ค๊ตํต์ ํ์ดํผํ๋ธ์ด๋ค. ํ์ดํผํ๋ธ ํ๋๋ ์ญ K๊ฐ๋ฅผ ์๋ก ์ฐ๊ฒฐํ๋ค. 1๋ฒ์ญ์์ N๋ฒ์ญ์ผ๋ก ๊ฐ๋๋ฐ ๋ฐฉ๋ฌธํ๋ ์ต์ ์ญ์ ์๋ ๋ช ๊ฐ์ผ๊น? ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์ญ์ ์ N๊ณผ ํ ํ์ดํผํ๋ธ๊ฐ ์๋ก ์ฐ๊ฒฐํ๋ ์ญ์ ๊ฐ์ K, ํ์ดํผํ๋ธ์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000) ๋ค์ M๊ฐ ์ค์๋ ํ์ดํผํ๋ธ์ ์ ๋ณด๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ด K๊ฐ ์ซ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, ์ด ์ซ์๋ ๊ทธ ํ์ดํผํ๋ธ๊ฐ ์๋ก ์ฐ๊ฒฐํ๋ ์ญ์ ๋ฒํธ์ด๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ 1๋ฒ์ญ์์ N๋ฒ์ญ์ผ๋ก ๊ฐ๋๋ฐ ๋ฐฉ๋ฌธํ๋ ์ญ์ ๊ฐ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ๊ฐ ์ ์๋ค๋ฉด -1์ ์ถ๋ ฅํ๋ค. ์์ ์ ๋ ฅ 1 9 3 5 1 2 3 ..
๋ฌธ์ NxN ํฌ๊ธฐ์ ์ํ๊ด์ด ์๋ค. ์ํ๊ด์ 1x1 ํฌ๊ธฐ์ ์นธ์ผ๋ก ๋๋์ด์ง๋ฉฐ, ํน์ ํ ์์น์๋ ๋ฐ์ด๋ฌ์ค๊ฐ ์กด์ฌํ ์ ์๋ค. ๋ชจ๋ ๋ฐ์ด๋ฌ์ค๋ 1๋ฒ๋ถํฐ K๋ฒ๊น์ง์ ๋ฐ์ด๋ฌ์ค ์ข ๋ฅ ์ค ํ๋์ ์ํ๋ค. ์ํ๊ด์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฐ์ด๋ฌ์ค๋ 1์ด๋ง๋ค ์, ํ, ์ข, ์ฐ์ ๋ฐฉํฅ์ผ๋ก ์ฆ์ํด ๋๊ฐ๋ค. ๋จ, ๋งค ์ด๋ง๋ค ๋ฒํธ๊ฐ ๋ฎ์ ์ข ๋ฅ์ ๋ฐ์ด๋ฌ์ค๋ถํฐ ๋จผ์ ์ฆ์ํ๋ค. ๋ํ ์ฆ์ ๊ณผ์ ์์ ํน์ ํ ์นธ์ ์ด๋ฏธ ์ด๋ ํ ๋ฐ์ด๋ฌ์ค๊ฐ ์กด์ฌํ๋ค๋ฉด, ๊ทธ ๊ณณ์๋ ๋ค๋ฅธ ๋ฐ์ด๋ฌ์ค๊ฐ ๋ค์ด๊ฐ ์ ์๋ค. ์ํ๊ด์ ํฌ๊ธฐ์ ๋ฐ์ด๋ฌ์ค์ ์์น ์ ๋ณด๊ฐ ์ฃผ์ด์ก์ ๋, S์ด๊ฐ ์ง๋ ํ์ (X,Y)์ ์กด์ฌํ๋ ๋ฐ์ด๋ฌ์ค์ ์ข ๋ฅ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋ง์ฝ S์ด๊ฐ ์ง๋ ํ์ ํด๋น ์์น์ ๋ฐ์ด๋ฌ์ค๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด, 0์ ์ถ๋ ฅํ๋ค. ์ด ๋ X์ Y๋ ๊ฐ๊ฐ ํ๊ณผ..
๋ฌธ์ ๐ ROR ๊ฒ์์ ๋ ํ์ผ๋ก ๋๋์ด์ ์งํํ๋ฉฐ, ์๋ ํ ์ง์์ ๋จผ์ ํ๊ดดํ๋ฉด ์ด๊ธฐ๋ ๊ฒ์์ ๋๋ค. ๋ฐ๋ผ์, ๊ฐ ํ์ ์๋ ํ ์ง์์ ์ต๋ํ ๋นจ๋ฆฌ ๋์ฐฉํ๋ ๊ฒ์ด ์ ๋ฆฌํฉ๋๋ค. ์ง๊ธ๋ถํฐ ๋น์ ์ ํ ํ์ ํ์์ด ๋์ด ๊ฒ์์ ์งํํ๋ ค๊ณ ํฉ๋๋ค. ๋ค์์ 5 x 5 ํฌ๊ธฐ์ ๋งต์, ๋น์ ์ ์บ๋ฆญํฐ๊ฐ (ํ: 1, ์ด: 1) ์์น์ ์๊ณ , ์๋ ํ ์ง์์ (ํ: 5, ์ด: 5) ์์น์ ์๋ ๊ฒฝ์ฐ์ ์์์ ๋๋ค. ์ ๊ทธ๋ฆผ์์ ๊ฒ์์ ๋ถ๋ถ์ ๋ฒฝ์ผ๋ก ๋งํ์์ด ๊ฐ ์ ์๋ ๊ธธ์ด๋ฉฐ, ํฐ์ ๋ถ๋ถ์ ๊ฐ ์ ์๋ ๊ธธ์ ๋๋ค. ์บ๋ฆญํฐ๊ฐ ์์ง์ผ ๋๋ ๋, ์, ๋จ, ๋ถ ๋ฐฉํฅ์ผ๋ก ํ ์นธ์ฉ ์ด๋ํ๋ฉฐ, ๊ฒ์ ๋งต์ ๋ฒ์ด๋ ๊ธธ์ ๊ฐ ์ ์์ต๋๋ค. ์๋ ์์๋ ์บ๋ฆญํฐ๊ฐ ์๋ ํ ์ง์์ผ๋ก ๊ฐ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํ๋ด๊ณ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ 11๊ฐ..