๐ฉ ์๋ฃ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐฐ์ด ๋ถ๋ถ๊ณผ ๋น๊ตํ์ฌ, ์์ ์ ์์น๋ฅผ ์ฐพ์ ์ฝ์
ํจ์ผ๋ก์จ ์ ๋ ฌ์ ์์ฑํ๋ ์๊ณ ๋ฆฌ์ฆ ๋งค ์์๋ง๋ค ํด๋น ์์๋ฅผ ์ฝ์
ํ ์ ์๋ ์์น๋ฅผ ์ฐพ์ ํด๋น ์์น์ ์ฝ์
์ผ์ชฝ์๋ ์ ๋ ฌ์ด ๋๋ ์๊ฐ ์ค๊ฒ๋๊ณ , ์ค๋ฅธ์ชฝ์๋ ์์ง ํ์ธํ์ง ์์ ์ซ์๊ฐ ๋จ๊ฒ ๋๋๋ฐ, ์ค๋ฅธ์ชฝ ๋ฏธํ์ ์์ญ์์ ์ซ์๋ฅผ ํ๋ ๊บผ๋ด์ด ์ ๋ ฌ์ด ๋๋ ์์ญ์ ์ ์ ํ ์์น์ ์ฝ์
ํด ๋๊ฐ๋ ๋ฐฉ์ ์ด๋ฏธ ์ ๋ ฌ์ด ๋์ด์๋ค๋ฉด ํ์์์ด ์ข
๋ฃํ๋ค. InsertionSort(A[ ], n) { for (i=1; i 0 && A..
๐ฉ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ ๋ฐฉํฅ์ผ๋ก ์ธ์ ํ ๋ ๊ฐ์ ์ซ์๋ฅผ ๋น๊ตํด ๊ตํํ์ฌ ์ ๋ ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋๊น์ง ๋ค์ ๋์์ ๋ฐ๋ณตํ๋ค. ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก๋ ๊ฐ๋ฅ BubbleSort(A[ ], n) { for (i=0; i A[j+1]) // ‘์ผ์ชฝ ๋ฐ์ดํฐ >์ค๋ฅธ์ชฝ ๋ฐ์ดํฐ’์ด๋ฉด A[j]์ A[j+1]์ ์๋ฆฌ๋ฐ๊ฟ; return (A); } ๐ฉ ์๊ฐ ๋ณต์ก๋ for๋ฌธ i (์ธ๋ถ ๋ฐ๋ณต๋ฌธ) : 0 ~ (n-2) ๐ (n-1)ํ for๋ฌธ j (๋ด๋ถ ๋ฐ๋ณต๋ฌธ) : ๋์ผ ๐ (n-1)ํ ์ด ๋น๊ต ํ์ = O(n^2) ๐ฉ ์ฑ๋ฅ ์ ํ ์ ๋ ฌ์ ๋นํด ๋ฐ์ดํฐ ๊ตํ์ด ๋ง์ด ๋ฐ์. ์ ํ ์ ๋ ฌ๋ณด๋ค ๋นํจ..
๐ฉ ์
๋ ฅ ๋ฐฐ์ด์์ ๊ฐ์ฅ ์์ ๊ฐ๋ถํฐ ์์๋๋ก '์ ํ'ํด์ ๋์ดํ๋ ๋ฐฉ์ ์์ด ์ค์์ ์ต์๊ฐ์ ์ฐพ์ ์ผ์ชฝ ๋์ ์๋ ์ซ์์ ๊ต์ฒดํ๋ ์์
์ ๋ฐ๋ณตํ๋ค. ์ต์๊ฐ์ ์ฐพ์ ๋๋ ์ ํ ํ์์ ์ฌ์ฉ SelectionSort(A[ ], n) { for (i=0; i A[j]) min = j; A[i]์ A[min]์ ์๋ฆฌ๋ฐ๊ฟ; // โก์ต์๊ฐ๊ณผ A[i]์ ์์น ๊ตํ } return (A); } ๐ฉ ์๊ฐ๋ณต์ก๋ ์ด ๋น๊ตํ์ = (n-1) + (n-2) + ... + 1 = n(n-1)/2 ๐ O(n^2) ๋ฃจํi 0 1 2 ... n-2 ๋ฃจํj์ ๋น๊ตํ์ n..
๐ฉ ์๊ณ ๋ฆฌ์ฆ์ ์ํ ๊ณผ์ ์์ ์๊ธฐ ์์ ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์ ์ํํ๋ ํํ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ ์ฝ๋๋ ํญ์ ์ฌ๊ทํจ์๋ฅผ ํตํด ๊ตฌํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ฉฐ, ๊ทธ ๋ฐ๋๋ ๊ฐ๋ฅํ๋ค. ์ฌ๊ท ํจ์๋ฅผ ์์ฑํ ๋๋ ํจ์ ๋ด์์ ๋ค์ ์๊ธฐ ์์ ์ ํธ์ถํ ํ ๊ทธ ํจ์๊ฐ ๋๋ ๋๊น์ง ํจ์ ํธ์ถ ์ดํ์ ๋ช
๋ น๋ฌธ์ด ์ํ๋์ง ์๋๋ค๋ ์ฌ์ค๊ณผ ์ข
๋ฃ์กฐ๊ฑด์ด ๊ผญ ํฌํจ ๋์ด์ผํ๋ค๋ ๋ถ๋ถ์ ์ธ์งํ๊ณ ์์ฑํ๋ฉด ๋ฌดํ๋ฃจํ๋ฅผ ๋ฐฉ์ง ๊ฐ๋ฅ ๐ฉ for, while๋ฌธ ๋ฑ ๋ฐ๋ณต๋ฌธ๊ณผ ๋น๊ตํ๋ฉด ์ฒ๋ฆฌ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ ์๋ชจ๋ฅผ ๋ง์ด ํ๋ค. ์ค๋งํธํ๊ฒ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์์ ๋๋ง ์ฌ์ฉํด์ผ ํ๋ ๊ธฐ๋ฒ ๐ ์1. ์นด์ดํธ๋ค์ด ๐ ์2. ๊ตฌ๊ตฌ๋จ ์ถ๋ ฅ ๐ ์3. ํฉํ ๋ฆฌ์ผ #include int factorial(int n) { printf("factorial(%d)๊ฐ ํธ..
๋ถํ ํ ๋ฌธ์ ์ ๋ต์ ๊ธฐ์ตํด ๋๊ณ , ์ด๋ฅผ ์ฌ์ฌ์ฉํจ์ผ๋ก์จ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ฌ๋ฌ ๋ฒ ํธ๋ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ๋ค๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ํฅ์ ์ ๊ทผ๋ฐฉ๋ฒ ๐ฉ ํน์ง๊ฐ ์๋ฌธ์ ๋ ์๋ ์ฃผ์ด์ง ๋ฌธ์ ์ ๋์ผํ ๋ฌธ์ ๐ ์
๋ ฅ ํฌ๊ธฐ๋ง ์์์ง ๋ฌธ์ ์๋ฌธ์ ๋ค์ ์๋ก ๋
๋ฆฝ์ผ ํ์์๋ค.ํด๋ฅผ ๊ตฌ์ถํ๋๋ฐ ํ
์ด๋ธ์ ์ฌ์ฉํ๋ค. ์ต์๊ฐ/์ต๋๊ฐ์ ๊ตฌํ๋ ์ต์ ํ ๋ฌธ์ ์ ์ฃผ๋ก ์ฌ์ฉ"์ต์ ์ฑ์ ์๋ฆฌ"๋ฅผ ๋ฐ๋์ ๋ง์กฑํ๋ ๋ฌธ์ ์๋ง ์ ์ฉ ๊ฐ๋ฅํ๋ค.์ฃผ์ด์ง ๋ฌธ์ ์ ๋ํ ์ต์ ํด๋ ์ฃผ์ด์ง ๋ฌธ์ ์ ์๋ฌธ์ ์ ๋ํ ์ต์ ํด๋ก ๊ตฌ์ฑ๋๋ค. ๐ฉ ์ฒ๋ฆฌ ๊ณผ์ 1. ์ต์ ์ฑ์ ์๋ฆฌ๊ฐ ์ฃผ์ด์ง ๋ฌธ์ ์ ์ฑ๋ฆฝํ๋ ์ง ํ์ธ2. ์ฃผ์ด์ง ๋ฌธ์ ์ ๋ํด์ ์ต์ ํด๋ฅผ ์ ๊ณตํ๋ ์ ํ์ ๋์ถ3. ๊ฐ์ฅ ์์ ์๋ฌธ์ ๋ถํฐ ์ ํ์์ ํด๋ฅผ ๊ตฌํ ๋ค ์ด๋ฅผ ํ
์ด๋ธ์ ์ ์ฅ4. ํ
์ด๋ธ์ ์ ์ฅ๋ ์๋ฌธ์ ์ ํด๋ฅผ ์ด์ฉํ์ฌ ์ ์ฐจ์ ์ผ๋ก ์
..
๐ฉ ๊ทธ๋๋ก ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก ๋ถํ ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ ์ฃผ์ด์ง ๋ฌธ์ ์ ์
๋ ฅ์ ๋ ์ด์ ๋๋ ์ ์์ ๋๊น์ง 2๊ฐ ์ด์์ ์์ ๋ฌธ์ ๋ค๋ก ์ํ์ ์ผ๋ก ๋ถํ ํ๊ณ , ์ด๋ ๊ฒ ๋ถํ ๋ ์์ ๋ฌธ์ ๋ค์ ๊ฐ๊ฐ ํด๊ฒฐํ ํ, ์ด๋ค์ ํด๋ฅผ ๊ฒฐํฉํ์ฌ ์๋ ๋ฌธ์ ์ ํด๋ฅผ ๊ตฌํ๋ ๋ฐฉ์ ๐ฉ ๋ถํ ๋ ์์ ๋ฌธ์ ๋ ์๋ ๋ฌธ์ ์ ๋์ผํ๋ค. ์
๋ ฅ์ ํฌ๊ธฐ๋ง ์์์ง๋ค. ๐ฉ ๋ถํ ๋ ๋ฌธ์ ๋ ์๋ก ๋
๋ฆฝ์ ์ด๋ค. ์ํ์ ์ธ ๋ถํ ๋ฐ ๊ฒฐ๊ณผ ๊ฒฐํฉ์ด ๊ฐ๋ฅํ๋ค. ๐ ํ์ฉ1 ์ ๋ ฌ : ํฉ๋ณ์ ๋ ฌ, ํต์ ๋ ฌ ๐ ํ์ฉ2 ํ์ : ์ด์งํ์
๐ฉ ๋งค ์๊ฐ์์ ์ง๊ธ ์ด ์๊ฐ ๋น์ฅ ์ต์ ์ ๋ต์ ์ ํํด ์ ํฉํ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ์! = ๊ฐ๋จํ๋ฉด์ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋ค ์ ์๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฒ ์ต์๊ฐ/์ต๋๊ฐ์ ๊ตฌํ๋ ์ต์ ํ ๋ฌธ์ ์ ์ฃผ๋ก ์ฌ์ฉ ๊ฐ ๋จ๊ณ๋ง๋ค ์ ์ฑ
ํ ์ต์ ์ ํด๊ฐ ์ ์ฒด์ ์ธ ์ต์ ์ ํด๊ฐ ๋์ง ์์ ์ ์๋ค! ๐ ํ์ฉ1 ๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ , ๋ฐฐ๋ญ ๋ฌธ์ ๋ฐฐ๋ญ ๋ฌธ์ #include // ๋ฐฐ๋ญ์ ์ต๋ ๋ฌด๊ฒ #define KNAP_MAX 6 // ๋ฌผ๊ฑด์ ์ข
๋ฅ #define ITEM_NUM 5 // ๋ฌผ๊ฑด์ ๋ช
์นญ char name[] = { 'A', 'B', 'C', 'D', 'E' }; // ๋ฌผ๊ฑด์ ๋ฌด๊ฒ int weight[] = { 1, 2, 3, 4, 5 }; // ๋ฌผ๊ฑด์ ๊ฐ์น int value[] = { 100, 300, 350, 500, 650 }; // ..
์ ํ ๊ฒ์ ์์์ ๋ฐฐ์ด์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ '์์์'์ธ ์ด์ ๋ ํฌ๊ธฐ ์์๋๋ก ์ ๋ ฌ๋ ๋ฐฐ์ด์ด๋ผ๋ฉด '์ด์ง ๊ฒ์'์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ซ๋ค. ์์ ๋ฌด์์. ๋ฐฐ์ด์ ์์์๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๋ค. ๊ณ์ฐ ์๊ฐ์ O(n) ์) ์ง์ ํ ๊ฐ๊ณผ ๋ฐฐ์ด์ ๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ ์ข
๋ฃ. ๋ฐฐ์ด์ ๊ฐ์ ๊ฐ์ด ์ค๋ณต์ผ๋ก ์์ ๊ฒฝ์ฐ์๋, ์ฒ์ ๋ฐ๊ฒฌ๋ ์์ ์ ์ข
๋ฃํ๋ค. x=68์ธ ๊ฒฝ์ฐ, '1' ์ํ๋ ๊ฐ์ด ๋ฐ๊ฒฌ๋์ง ์์ ๊ฒฝ์ฐ '-1'์ ํ์ํ๋ค. -1์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ ์ ์๋ ๊ฐ์ด๊ธฐ ๋๋ฌธ #include #define LENGTH 10 int main(void) { int x = 0; int pos = -1; int a[] = { 72, 68, 92, 88, 41, 53, 97, 84, 39, 55 }; printf("์
๋ ฅํ ์ซ์ ..
n+1๊ฐ์ ํ์ ์ด๋ํ๋ ค ํ ๋, ๊ฐ์ฅ ํฐ ์๋ฐ์ ๋ฌด์ํ๊ณ , n๊ฐ๋ฅผ b๋ก ์ด๋ ์ํจ๋ค. ๊ฐ์ฅ ํฐ ์๋ฐ์ c๋ก ์ด๋์ํจ ๋ค ์ด๋์ํค๋ฉด ๋๋ค. ์ฒ์์ b๋ก n๊ฐ์ ํ์ ์ด๋์ํฌ ๋, c์ ๋๋์ด์ ์ด๋์์ผ์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ณ์ฐ์ ์ผ๋ก ํด์ผํ๋ค. n๊ฐ ํ ๋ฌธ์ ๋ n-1 ํ ๋ฌธ์ ๋ฅผ ํ์ฉํ๋ฉด ๋๊ณ , n-1์ n-2๋ฅผ ํ์ฉํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ฌ๊ท์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๊ณ์ฐ ์๊ฐ n-1๊ฐ๋ฅผ A์์ B๋ก ์ด๋์ํฌ ๋, n-1 ๊ฐ์ฅ ํฐ ์๋ฐ์ C๋ก ์ด๋์ํฌ ๋, 1 B์ ์๋ n-1๊ฐ๋ฅผ C๋ก ์ด๋์ํฌ ๋, n-1์ด ํ์ํ๋ฏ๋ก T(n) = 2T(n-1) + 1 = 2^n - 1
๐ ์์๋ 1๊ณผ ์์ ์ด์ธ๋ ์ฝ์๋ก ๊ฐ์ง์ง ์๋ 1๋ณด๋ค ํฐ ์์ฐ์์ด๋ค. ๐ฉ ํ๋ฅด๋ง ํ
์คํธ = ํ๋ฅ ์ ์์ ํ๋ณ๋ฒ ์ด๋ค ์๊ฐ '์์์ผ ๊ฐ๋ฅ์ฑ์ด ๋์์ง'๋ฅผ ํ๋ณํ๋ ๊ฒ 1. ํด๋น ์๋ณด๋ค ์์ ์๋ฅผ ํด๋น ์๋งํผ ์ ๊ณฑํ๋ค. ์)5 -> 1^5 ~ 4^5 2. ๊ฐ๊ฐ์ ์ซ์๋ฅผ mod ์ฐ์ฐ์ ์ด์ฉํด ํด๋น ์๋ก ๋๋๋ค. ์) 1^5 = 1 mod 5 = 1 3. ์๋ ์์ ๋๋จธ์ง ๊ฐ์ด ๋ชจ๋ ์ผ์นํ๋ฉด, ์์์ด๋ค. ํ๋ฅด๋ง์ ์์ ๋ฆฌ๋ฅผ ๋ง์กฑํ๋์ง๋ฅผ ์์ ํ๋ณ์ ํ๋ ๋ฐฉ๋ฒ์ด 'ํ๋ฅด๋ง ํ
์คํธ' ์ผ์นํ๋์ง ํ์ธํ๋ ํ์๋ฅผ ๋๋ฆด์๋ก ์์์ผ ํ์ค์ฑ์ด ๋์์ง๋ค. ๋จ p๋ณด๋ค ์์ ๋ชจ๋ ์๋ฅผ ํ์ธํ๋ ค๋ฉด ๋งค์ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ์ค์ ๋ก๋ ๋ช ๊ฐ์ ์๋ง ํ์ธํด์ ์์์ผ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋๋ค๊ณ ํ๋จํ ์ ์์ผ๋ฉด '์๋ง๋ ์์'๋ผ๊ณ ํ์ ํ๊ณ ์๋ค..
์๊ณ ๋ฆฌ์ฆ ํจ์จ์ฑ ๋ถ์ 1. ๊ณต๊ฐ ๋ณต์ก๋ ๋ฉ๋ชจ๋ฆฌ์ ์ = ์ ์ ๊ณต๊ฐ + ๋์ ๊ณต๊ฐ 2. ์๊ฐ ๋ณต์ก๋ ์ํ์๊ฐ = ์๊ณ ๋ฆฌ์ฆ์ ์คํ์์๋ถํฐ ์๋ฃ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ = ๊ฐ ๋ฌธ์ฅ(์ฐ์ฐ)์ด ์ํ๋๋ ํ์ ๐ ์
๋ ฅ ํฌ๊ธฐ (๋ฐ์ดํฐ์ ๊ฐฏ์) ์) ๋ฆฌ์คํธ์ ์์ ๊ฐ์, ํ๋ ฌ ํฌ๊ธฐ, ๊ทธ๋ํ ์ ์ ์ ์ ๐ ์
๋ ฅ ๋ฐ์ดํฐ์ ์ํ ์ ๊ทผ์ฑ๋ฅ : ๋ฐ์ดํฐ์ ๊ฐ n์ด ๋ฌดํํ ์ปค์ง์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ ์ฑ๋ฅ ์๊ฐ๋ณต์ก๋ ๊ตฌํ๊ธฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ ๋ฌธ์ฅ์ด ์๋ ๋ฃจํ์ ๋ฐ๋ณต ํ์๋ง์ ์กฐ์ฌํ์ฌ ์ต๊ณ ์ฐจ์๋ฅผ ์๊ฐ ๋ณต์ก๋๋ก ์ทจํจ
'์'์ ๋ํ '๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ๋ฒ' ์ปดํจ์ด ๋ถ์ผ์์๋ '๊ณต์ํ๋', '๋จ๊ณ์ '์ด๋ผ๋ ์กฐ๊ฑด ์ ๋งค๋ชจํธํ๋ฉฐ ์ธ์ ๋๋ ์ง ๋ชจ๋ฅด๋ ์ ์ฐจ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ถ๋ฅผ ์ ์๋ค. ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ๋ ์ ์์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ 1. ๋ ์ ์์ ํฐ ์ชฝ - ์์ ์ชฝ, ์์ชฝ์ด ๊ฐ์์ง ๋๊น์ง ๋ฐ๋ณตํ๋ค. 2. ๊ฐ์์ง ๊ฐ์ด ์ต๋๊ณต์ฝ์๊ฐ ๋๋ค. ์) 50๊ณผ 30์ ์ต๋๊ณต์ฝ์ = 10 30 30 30-20=10 10 50 50-30=20 20 20-10=10 cf. ๋๋จธ์ง๋ก ์ต๋๊ณต์ฝ์ ๊ตฌํ๊ธฐ ๋๋ณด๊ธฐ ํฐ ์ชฝ์์ ์์ ์ชฝ์ ๋๋ ๋๋จธ์ง๋ฅผ ๊ณ์ ๊ตฌํ๋ค. ๋๋จธ์ง ๊ฐ์ด 0์ด ๋๋ ๋ชซ์ ์ต๋๊ณต์ฝ์๋ผ ํ๋ค. ์) 50๊ณผ 15์ ์ต๋๊ณต์ฝ์ = 5 1. 15 50 % 15 = 5 (50 -> 5) 2. 5 15 % 5 ..