ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Algorithm 13

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๊ณ„์ˆ˜ ์ •๋ ฌ Counting Sort

๊ณ„์ˆ˜ ์ •๋ ฌ (Counting Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๊ณ„์ˆ˜ ์ •๋ ฌ = ๋„์ˆ˜ ์ •๋ ฌ = ์นด์šดํŒ… ์ •๋ ฌ ์š”์†Œ์˜ ๋Œ€์†Œ ๊ด€๊ณ„๋ฅผ ํŒ๋‹จํ•˜์ง€ ์•Š๊ณ  ๋น ๋ฅด๊ฒŒ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. ๋ฐฐ์—ด ๋‚ด ์š”์†Œ ๊ฐ’๋“ค์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์นด์šดํŒ… ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค 2. ์นด์šดํŒ… ๋ฐฐ์—ด์˜ ์š”์†Œ์— ์ง์ „ ์š”์†Œ์˜ ๊ฐ’์„ ๋”ํ•ด์ค€๋‹ค. 3. ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ํฌ๊ธฐ์˜ ์ถœ๋ ฅ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ์ž…๋ ฅ ๋ฐฐ์—ด์˜ ์—ญ์ˆœ์œผ๋กœ ์ถœ๋ ฅ ๋ฐฐ์—ด์— ์š”์†Œ๋“ค์„ ์ฑ„์›Œ๋„ฃ๋Š”๋‹ค. 3-1. ๋ฐฐ์—ด a์˜ ๋งจ ๋’ท ์š”์†Œ 8์„ ๊บผ๋‚ด counting[8]์„ ํ™•์ธ 3-2. ๋ฐฐ์—ด b์˜ counting[8]-- ํ›„ counting[8] ์ž๋ฆฌ์— 8์„ ์ €์žฅ 4. ๋ฐฐ์—ด b๋ฅผ ๋ฐฐ์—ด a๋กœ ๋ณต์‚ฌํ•œ๋‹ค ๋ฉ”์†Œ๋“œ countingSort() : ๋ฐฐ์—ด a๋ฅผ ์นด์šดํŒ… ์ •๋ ฌ ๋งค๊ฐœ๋ณ€์ˆ˜ : int[] a, int n - ์นด์šดํŒ… ์ •๋ ฌ : void count..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํž™ ์ •๋ ฌ Heap Sort - ๋ถ€์—ฐ

ํž™ ์ •๋ ฌ (Heap Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : '๋ถ€๋ชจ์˜ ๊ฐ’์ด ์ž์‹์˜ ๊ฐ’๋ณด๋‹ค ํ•ญ์ƒ ํฌ๋‹ค or ์ž‘๋‹ค' ๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์™„์ „์ด์ง„ํŠธ๋ฆฌ ํž™ ์˜ ํŠน์„ฑ์„ ์ด์šฉํ•˜์—ฌ ์ •๋ ฌ ์ˆ˜ํ–‰. ์„ ํƒ ์ •๋ ฌ ์„ ์‘์šฉํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฉ”์†Œ๋“œ swap() : a[idx1] ๊ณผ a[idx2] ๋ฅผ ๊ตํ™˜ ๋งค๊ฐœ๋ณ€์ˆ˜ : int[] a, int idx1, int idx2 ๋ฉ”์†Œ๋“œ donwHeap() : ๋ฐฐ์—ด a์˜ index left ๋ถ€ํ„ฐ right ๊นŒ์ง€ ์š”์†Œ๋ฅผ ํž™์œผ๋กœ ๋งŒ๋“ ๋‹ค ๋งค๊ฐœ๋ณ€์ˆ˜ : int[] a, int left, int right ๋ฉ”์†Œ๋“œ heapSort() : ๊ธธ์ด๊ฐ€ n์ธ ๋ฐฐ์—ด a๋ฅผ ํž™ ์ •๋ ฌ ๋งค๊ฐœ๋ณ€์ˆ˜ : int[] a, int n - ํž™ ์ •๋ ฌ : void swap(int[]a, int idx1, int idx2) { int t = a[idx1]; a[idx1..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํ•ฉ๋ณ‘ ์ •๋ ฌ Merge Sort

ํ•ฉ๋ณ‘ ์ •๋ ฌ (Merge Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๋ฐฐ์—ด์„ ์•ž๋ถ€๋ถ„๊ณผ ๋’ท๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ๊ฐ ์ •๋ ฌํ•œ ๋‹ค์Œ ๋ณ‘ํ•ฉํ•˜๋Š” ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ int[] merge = {8, 1, 4, 2, 7, 6, 3, 5} 1. ๋ฐฐ์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค 2. ์•ž๋ถ€๋ถ„์„ ํ•ฉ๋ณ‘์ •๋ ฌ๋กœ ์ •๋ ฌํ•œ๋‹ค 3. ๋’ท๋ถ€๋ถ„์„ ํ•ฉ๋ณ‘์ •๋ ฌ๋กœ ์ •๋ ฌํ•œ๋‹ค 4. ์•ž๋ถ€๋ถ„๊ณผ ๋’ท๋ถ€๋ถ„์„ ๋ณ‘ํ•ฉํ•œ๋‹ค 4-1. ์•ž๋ถ€๋ถ„์„ ๋ฐฐ์—ด buff์— ๋ณต์‚ฌ 4-2. ๋ฐฐ์—ด buff์™€ ๋’ท๋ถ€๋ถ„์„ ๋ฐฐ์—ด a์— ๋ณ‘ํ•ฉ 4-3. ๋ฐฐ์—ด buff์˜ ๋‚˜๋จธ์ง€ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด a์— ๋ณต์‚ฌ ๋ฉ”์„œ๋“œ mergeSort() : ๋ฐฐ์—ด a์˜ ํฌ๊ธฐ n๊ณผ ๊ฐ™์€ ํฌ๊ธฐ์˜ ๋ฐฐ์—ด buff๋ฅผ ์„ ์–ธํ•˜๊ณ , mergetSort()๋ฅผ ์‹คํ–‰ ํ›„ ์ •๋ ฌ์ด ๋๋‚˜๋ฉด ๋ฐฐ์—ด buff๋ฅผ ํ•ด์ œ ๋งค๊ฐœ๋ณ€์ˆ˜ : int[] a, int n ๋ฉ”์„œ๋“œ mergeSo..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํ€ต ์ •๋ ฌ Quick Sort

ํ€ต ์ •๋ ฌ (Quick Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘์˜ ํ•˜๋‚˜๋กœ, ๋งค์šฐ ๋น ๋ฅธ ์†๋„๋ฅผ ์ž๋ž‘ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. ๋ฐฐ์—ด ์•ˆ์˜ ํ•œ ์š”์†Œ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ด๋ฅผ ํ”ผ๋ฒ—์ด๋ผ ํ•˜๊ณ , ๋ฐฐ์—ด์˜ ๋งจ ์ฒซ๋ฒˆ์งธ ์š”์†Œ์™€ ๊ตํ™˜ 2. ๋ฐฐ์—ด์˜ ์™ผ์ชฝ ๋์—์„œ๋ถ€ํ„ฐ ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ ์š”์†Œ๋ฅผ, ์˜ค๋ฅธ์ชฝ ๋์—์„œ๋ถ€ํ„ฐ ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ ์š”์†Œ๋ฅผ ํƒ์ƒ‰ 3. ์™ผ์ชฝ์—์„œ ๋ฐœ๊ฒฌํ•œ ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ ์š”์†Œ์™€ ์˜ค๋ฅธ์ชฝ์—์„œ ๋ฐœ๊ฒฌํ•œ ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ ์š”์†Œ๋ฅผ ๊ตํ™˜ 3. ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ์—์„œ ํƒ์ƒ‰ํ•˜๋˜ ์ปค์„œ๊ฐ€ ๋งŒ๋‚˜๋ฉด ์ค‘์ง€, ํ”ผ๋ฒ—๊ณผ ๊ตํ™˜ => ๋‘ ์ปค์„œ๊ฐ€ ๋งŒ๋‚œ ์œ„์น˜ ์™ผ์ชฝ์—๋Š” ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ ์š”์†Œ๊ฐ€, ์˜ค๋ฅธ์ชฝ์—๋Š” ํฐ ์š”์†Œ๊ฐ€ ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค 4. ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ๊ทธ๋ฃน๊ณผ ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฃน์„ ๊ฐ๊ฐ ๋‹ค์‹œ ํ€ต ์ •๋ ฌ 5. ๊ฐ ๊ทธ๋ฃน์ด ๋”์ด์ƒ ๋ถ„ํ• ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณต -> ๊ทธ๋ฃน ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ 0์ด๋‚˜ 1์ด๋ฉด ์ค‘์ง€ i..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์…ธ ์ •๋ ฌ Shell Sort

์…ธ ์ •๋ ฌ (Shell Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์‚ฝ์ž… ์ •๋ ฌ ์˜ ์žฅ์ ์€ ์‚ด๋ฆฌ๊ณ  ๋‹จ์ ์€ ๋ณด์™„ํ•˜์—ฌ ์ข€ ๋” ๋น ๋ฅด๊ฒŒ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋ถˆ์•ˆ์ • ์ •๋ ฌ. ์ •๋ ฌํ•  ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ  ๊ฐ ๊ทธ๋ฃน๋ณ„๋กœ ์‚ฝ์ž… ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ทธ ๊ทธ๋ฃน์„ ํ•ฉ์น˜๋ฉด์„œ ์ •๋ ฌ์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์š”์†Œ์˜ ์ด๋™ ํšŸ์ˆ˜๋ฅผ ์ค„์ž„ ์‚ฝ์ž… ์ •๋ ฌ์˜ ์žฅ/๋‹จ์  ์žฅ์  : ์ •๋ ฌ์„ ๋งˆ์ณค๊ฑฐ๋‚˜ ์ •๋ ฌ์„ ๋งˆ์นœ ์ƒํƒœ์— ๊ฐ€๊นŒ์šฐ๋ฉด ์ •๋ ฌ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค ๋‹จ์  : ์‚ฝ์ž…ํ•  ์œ„์น˜๊ฐ€ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์œผ๋ฉด ์ด๋™(์‚ฝ์ž…)ํ•ด์•ผ ํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„์ง„๋‹ค ์…ธ ์ •๋ ฌ์€ ์ „์ฒด์˜ ๋ฐฐ์—ด์„ ํ•œ๋ฒˆ์— ์ •๋ ฌํ•˜์ง€ ์•Š๊ณ  ์ •๋ ฌํ•ด์•ผ ํ•  ๋ฐฐ์—ด์„ ์ผ์ •ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ํ•˜์—ฌ ์—ฐ์†์ ์ด์ง€ ์•Š์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ€๋ถ„ ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด ๊ฐ ๊ทธ๋ฃน์„ ์‚ฝ์ž… ์ •๋ ฌํ•œ๋‹ค. ๋ถ€๋ถ„ ๊ทธ๋ฃน์„ ๊ตฌ์„ฑํ•  ๋•Œ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์˜ ๊ฐ K๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ๋งŒ๋“œ๋Š”๋ฐ, ์ด K๋ฅผ ๊ฐ„๊ฒฉ(gap)..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์‚ฝ์ž… ์ •๋ ฌ Insertion Sort

์‚ฝ์ž… ์ •๋ ฌ (Insertion Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์„ ํƒํ•œ ์š”์†Œ๋ฅผ ๊ทธ๋ณด๋‹ค ๋” ์•ž์ชฝ์˜ ์ •๋ ฌ๋œ ๋ถ€๋ถ„์˜ ์•Œ๋งž์€ ์œ„์น˜์— ์‚ฝ์ž…ํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠธ๋Ÿผํ”„ ์นด๋“œ๋ฅผ ํ•œ ์ค„๋กœ ๋Š˜์–ด๋†“์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌ 1. ์•„์ง ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์˜ ์ฒซ๋ฒˆ์งธ ์š”์†Œ selection[i]๋ฅผ ์„ ํƒ 2. ์ •๋ ฌ๋œ ๋ถ€๋ถ„์—์„œ selection[i]์˜ ์•Œ๋งž์€ ์œ„์น˜๋ฅผ ์ฐพ์•„ ์‚ฝ์ž… 2-1. ์ •๋ ฌ๋œ ๋ถ€๋ถ„์˜ ์š”์†Œ๋ฅผ ํ•œ์นธ์”ฉ ๋’ค๋กœ ๋ฐ€์–ด๋‚ธ๋‹ค 2-2. ์ •๋ ฌ๋œ ๋ถ€๋ถ„์˜ ์™ผ์ชฝ ๋์— ๋„๋‹ฌํ•˜๊ฑฐ๋‚˜ selection[i]๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ˆ˜๋ฅผ ๋งŒ๋‚  ๋•Œ ๊นŒ์ง€ 2-3. ์•Œ๋งž์€ ์ž๋ฆฌ์— selection[i] ์‚ฝ์ž… ๋ฉ”์„œ๋“œ insertionSort() : ๊ธธ์ด๊ฐ€ n์ธ ๋ฐฐ์—ด a๋ฅผ ์‚ฝ์ž… ์ •๋ ฌ ๋งค๊ฐœ๋ณ€์ˆ˜ : int[] a, int n - ์‚ฝ์ž… ์ •๋ ฌ void insertionSort..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์„ ํƒ ์ •๋ ฌ Selection Sort

์„ ํƒ ์ •๋ ฌ (Selection Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๊ฐ€์žฅ ์ž‘์€ ์š”์†Œ๋ถ€ํ„ฐ ์„ ํƒํ•ด ์•Œ๋งž์€ ์œ„์น˜๋กœ ์˜ฎ๊ฒจ์„œ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. ์•„์ง ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์š”์†Œ selection[i]๋ฅผ ์„ ํƒ 2. selection[i]์™€ ์•„์ง ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์˜ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊ตํ™˜ 3. n-1ํšŒ ๋ฐ˜๋ณต ๋ฉ”์„œ๋“œ swap() : a[idx1] ๊ณผ a[idx2] ๋ฅผ ๊ตํ™˜ ๋งค๊ฐœ๋ณ€์ˆ˜ : int[] a, int idx1, int idx2 ๋ฉ”์„œ๋“œ selectionSort() : ๊ธธ์ด๊ฐ€ n์ธ ๋ฐฐ์—ด a๋ฅผ ์„ ํƒ ์ •๋ ฌ ๋งค๊ฐœ๋ณ€์ˆ˜ : int[] a, int n - ์„ ํƒ ์ •๋ ฌ void swap(int[] a, int idx1, int idx2) { int t = a[idx1]; a[idx1] = a[idx2]; a[idx2] ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์นตํ…Œ์ผ ์…ฐ์ด์ปค ์ •๋ ฌ Cocktail Shaker Sort

์นตํ…Œ์ผ ์…ฐ์ด์ปค ์ •๋ ฌ (Cocktail Shaker Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์นตํ…Œ์ผ ์…ฐ์ด์ปค ์ •๋ ฌ(Cocktail Shaker Sort) = ์–‘๋ฐฉํ–ฅ ๋ฒ„๋ธ” ์ •๋ ฌ(Bidirectional Bubble Sort) = ์…ฐ์ด์ปค ์ •๋ ฌ(Shaker Sort) = ์นตํ…Œ์ผ ์ •๋ ฌ(Cocktail Sort) ๋ฒ„๋ธ” ์ •๋ ฌ ์˜ ๋ณ€ํ˜•. ๋ฒ„๋ธ” ์ •๋ ฌ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋งค ํŒจ์Šค๋งˆ๋‹ค ๋ฆฌ์ŠคํŠธ์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ” ์ •๋ ฌ ํ™€์ˆ˜ ๋ฒˆ์งธ์˜ ํŒจ์Šค๋Š” ๊ฐ€์žฅ ์ž‘์€ ์š”์†Œ๋ฅผ ๋งจ ์•ž์œผ๋กœ, ์ง์ˆ˜ ๋ฒˆ์งธ์˜ ํŒจ์Šค๋Š” ๊ฐ€์žฅ ํฐ ์š”์†Œ๋ฅผ ๋งจ ๋’ค๋กœ ์ •๋ ฌ or ํ™€์ˆ˜ ๋ฒˆ์งธ์˜ ํŒจ์Šค๋Š” ๊ฐ€์žฅ ํฐ ์š”์†Œ๋ฅผ ๋งจ ๋’ค๋กœ, ์ง์ˆ˜ ๋ฒˆ์งธ์˜ ํŒจ์Šค๋Š” ๊ฐ€์žฅ ์ž‘์€ ์š”์†Œ๋ฅผ ๋งจ ์•ž์œผ๋กœ ์ •๋ ฌ ์ฒซ๋ฒˆ์งธ ํŒจ์Šค๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๊ฐ€์žฅ ์ž‘์€ ์š”์†Œ๊ฐ€ ๋งจ ์•ž์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘๋ฒˆ์งธ ํŒจ์Šค๋Š” ๋งจ ์•ž์˜ ์š”์†Œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์•ž -> ๋’ค ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰๋˜๊ณ , ๋‘..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๋ฒ„๋ธ” ์ •๋ ฌ Bubble Sort

๋ฒ„๋ธ” ์ •๋ ฌ (Bubble Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์„œ๋กœ ์ด์›ƒํ•œ ๋‘ ์š”์†Œ์˜ ๋Œ€์†Œ ๊ด€๊ณ„๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ตํ™˜์„ ๋ฐ˜๋ณตํ•˜๋Š” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์š”์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ n๊ฐœ์ธ ๋ฐฐ์—ด์€ ์ด n-1ํšŒ์˜ ํŒจ์Šค๋ฅผ ๊ฑฐ์น˜๋ฉฐ, i๋ฒˆ์งธ ํŒจ์Šค์—์„œ ๊ฐ๊ฐ n-i๋ฒˆ์˜ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค ( ํŒจ์Šค์˜ ํšŸ์ˆ˜๊ฐ€ n-1ํšŒ์ธ ์ด์œ ๋Š” n-1ํšŒ์˜ ์ •๋ ฌ์ด ๋๋‚˜๋ฉด ๋งˆ์ง€๋ง‰ ์š”์†Œ ํ•˜๋‚˜๊ฐ€ ๋‚จ๋Š”๋ฐ, ์ด๋ฏธ ์ •๋ ฌ๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ ) int[] bubble = {6, 4, 5, 1, 2} 1. ์ฒซ๋ฒˆ์งธ ํŒจ์Šค : bubble[0] ~ bubble[4] ์ค‘ ๊ฐ€์žฅ ํฐ ์š”์†Œ๊ฐ€ ๋งจ ๋’ค๋กœ ์ด๋™ 1-1. bubble[0]๊ณผ bubble[1]์„ ๋น„๊ต, bubble[0]์ด bubble[1]๋ณด๋‹ค ํฌ๋ฏ€๋กœ ๊ตํ™˜ {4, 6, 5, 1, 2} 1-2. bubble[1]๊ณผ bubble[2]์„ ๋น„๊ต, bubble[1]์ด..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ - ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด Sieve of Eratosthenes

์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด (Sieve of Eratosthenes) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๊ณ ๋Œ€ ๊ทธ๋ฆฌ์Šค ์ˆ˜ํ•™์ž ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์†Œ์ˆ˜๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฒด๋กœ ์น˜๋“ฏ์ด ์ˆซ์ž๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ๋ฐฉ์‹. ์†Œ์ˆ˜์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ง€์šฐ๋ฉด ๋‚˜๋จธ์ง€๋Š” ์†Œ์ˆ˜๊ฐ€ ๋œ๋‹ค ex ) 2 ~ 120 ์‚ฌ์ด์˜ ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ• 1. 2๋ถ€ํ„ฐ ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ตฌ๊ฐ„์˜ ๋ชจ๋“  ์ˆ˜๋ฅผ ๋‚˜์—ดํ•œ๋‹ค. ๊ทธ๋ฆผ์—์„œ ํšŒ์ƒ‰ ์‚ฌ๊ฐํ˜•์œผ๋กœ ๋‘๋ฅธ ์ˆ˜๋“ค์ด ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•œ๋‹ค. 2. 2๋Š” ์†Œ์ˆ˜์ด๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์— 2๋ฅผ ์“ด๋‹ค. (๋นจ๊ฐ„์ƒ‰) 3. ์ž๊ธฐ ์ž์‹ ์„ ์ œ์™ธํ•œ 2์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ง€์šด๋‹ค. 4. ๋‚จ์•„์žˆ๋Š” ์ˆ˜ ๊ฐ€์šด๋ฐ 3์€ ์†Œ์ˆ˜์ด๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์— 3์„ ์“ด๋‹ค. (์ดˆ๋ก์ƒ‰) 5. ์ž๊ธฐ ์ž์‹ ์„ ์ œ์™ธํ•œ 3์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ง€์šด๋‹ค. 6. ๋‚จ์•„์žˆ๋Š” ์ˆ˜ ๊ฐ€์šด๋ฐ 5๋Š” ์†Œ์ˆ˜์ด๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์— 5๋ฅผ ์“ด๋‹ค. (ํŒŒ๋ž€์ƒ‰) 7. ์ž..