๋ฐ˜๊ฐ€์›Œ์š”! ํ—ˆ๋ธŒ์ž…๋‹ˆ๋‹ค!

์ €๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ํ˜„๋Œ€ ์—ฐ๊ธˆ์ˆ ์‚ฌ๋ผ๊ณ  ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋Š๋‚€ ์ ๋“ค๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.

์ž๋ฃŒ๊ตฌ์กฐ 15

[๋ฐฑ์ค€]์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 2750

์•ˆ๋…•ํ•˜์„ธ์š” ์ฃผ์ธ์žฅ H์ž…๋‹ˆ๋‹ค. https://www.acmicpc.net/problem/2750 2750๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” ์ ˆ๋Œ“๊ฐ’์ด 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. ์ˆ˜๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค. www.acmicpc.net ๋ฌธ์ œ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” ์ ˆ๋Œ“๊ฐ’์ด 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. ์ˆ˜๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ 1 ๋ณต..

[์ž๋ฃŒ๊ตฌ์กฐ] ํ€ต์ •๋ ฌ Quick Sort

์•ˆ๋…•ํ•˜์„ธ์š” ์ฃผ์ธ์žฅ H์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ํ€ต์ •๋ ฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ์ •๋ ฌ์€ ์‹œ๊ฐ„๋ณต์žก๋„ O(N^2)๋ฅผ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด์˜€์Šต๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ๋‹ค๋ฉด ์‚ฌ์šฉํ•˜๊ธฐ์— ๋ถ€๋‹ด์ด ๋˜๊ฒ ์ง€์š”. ๊ทธ๋ ‡๊ธฐ์— ๋Œ€ํ‘œ์ ์ธ ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ฐ”๋กœ ํ€ต์ •๋ ฌ์ž…๋‹ˆ๋‹ค. ํ€ต์ •๋ ฌ์€ ๋Œ€ํ‘œ์ ์ธ ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ์„œ ํ‰๊ท ์†๋„๊ฐ€ O(N*log N)์ž…๋‹ˆ๋‹ค. 1~10๊นŒ์ง€์˜ ๋ฌด์งˆ์„œํ•œ ์ˆซ์ž๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ฆฌํ•œ๋‹ค๊ณ  ํ• ๋•Œ, ํ€ต ์ •๋ ฌ์€ ํ•˜๋‚˜์˜ ํฐ ๋ฌธ์ œ๋ฅผ ๋‘ ๊ฐœ์˜ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•˜๋Š” ์‹์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ํŠน์ •ํ•œ ๊ฐ’(ํ”ผ๋ฒ—pivot)์„ ๊ธฐ์ค€์œผ๋กœ ํฐ ์ˆซ์ž์™€ ์ž‘์€ ์ˆซ์ž๋ฅผ ์„œ๋กœ ๊ตํ™˜ํ•œ ๋’ค์— ๋ฐฐ์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด (1) 10 5 8 7 6 4 3 2 9 ๋ผ๋Š” ์ˆซ์ž๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ 1๋ณด๋‹ค ํฐ ์ˆซ์ž๋ฅผ ์™ผ์ชฝ์—์„œ, 1๋ณด๋‹ค ํฐ ์ˆซ์ž๋ฅผ..

[์ž๋ฃŒ๊ตฌ์กฐ] ๋ฒ„๋ธ”์ •๋ ฌ Bubble Sort

์•ˆ๋…•ํ•˜์„ธ์š” ์ฃผ์ธ์žฅ H์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋ฒ„๋ธ”์ •๋ ฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฒ„๋ธ” ์ •๋ ฌ์€ 1~10๊นŒ์ง€์˜ ๋ฌด์งˆ์„œํ•œ ์ˆซ์ž๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค๋ผ๊ณ  ํ• ๋•Œ, ์ž์‹ ๋ณด๋‹ค ํฐ ์ˆ˜๊ฐ€ ์™ผ์ชฝ์— ์žˆ๋‹ค๋ฉด ์ž๋ฆฌ๋ฅผ ์„œ๋กœ ๋ฐ”๊พธ๋ฉด ์–ด๋–จ๊นŒ?๋ž€ ์•„์ด๋””์–ด์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๋ธ” ์ •๋ ฌ์€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ์‰ฝ์ง€๋งŒ ๊ฐ€์žฅ ๋น„ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๊ฐ ์‹ธ์ดํด๋งˆ๋‹ค ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ๋งจ ๋’ค๋กœ ๋ณด๋‚ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์ ์ธ ์—ฐ์‚ฐ์ด ๊ฐ€์žฅ ๋น„ํšจ์œจ์ ์œผ๋กœ ์ผ์–ด๋‚˜๊ฒŒ ๋˜์–ด ์‹ค์ œ ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ๊ฐ€์žฅ ๋Š๋ฆฐ ์•ˆ ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์„ ํƒ์ •๋ ฌ, ์‚ฝ์ž…์ •๋ ฌ๊ณผ ๋™์ผํ•œ O(N^2)์ž…๋‹ˆ๋‹ค. #include int main(void) { int i, j, temp; int arr[10] = { 1,3,2,5,7,6,10,9,8,4 }; for (i = 0..

Insertion Sort ์‚ฝ์ž…์ •๋ ฌ

์•ˆ๋…•ํ•˜์„ธ์š”. ์ฃผ์ธ์žฅ H์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์‚ฝ์ž… ์ •๋ ฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฌด์งˆ์„œํ•œ 1~10 ์„ ์ •๋ ฌํ•œ๋‹ค๊ณ  ํ–ˆ์„๋•Œ, ๊ฐ ์ˆซ์ž๋ฅผ ์ ์ ˆํ•œ ์œ„์น˜์— ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ •๋ ฌ๊ณผ ๋น„๊ตํ•ด ๋ณธ๋‹ค๋ฉด ์‚ฝ์ž… ์ •๋ ฌ์€ ํ•„์š”ํ•  ๋•Œ๋งŒ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์‚ฝ์ž… ์ •๋ ฌ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ •๋ ฌ์ด ๋˜์–ด์žˆ๋‹ค๊ณ  ๊ฐ€์ • ํ–ˆ์„ ๋•Œ ๊ต‰์žฅํžˆ ๋น ๋ฅธ ์†๋„๋ฅผ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ ์ƒ ๋ฐ˜๋ณต๋ฌธ์ด ๋‘ ๋ฒˆ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2)์ž…๋‹ˆ๋‹ค. #include int main(void) { int arr[10] = { 1,3,2,5,7,6,10,9,8,4 }; int i, j, tmp; for (i = 0; i = 0 && arr[j] > arr[j + 1]) { tm..

Selection Sort ์„ ํƒ์ •๋ ฌ

์•ˆ๋…•ํ•˜์„ธ์š”. ์ฃผ์ธ์žฅ H์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์„ ํƒ์ •๋ ฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ๊ฑด๋ฐ์š”. 1~10 ๊นŒ์ง€ ๋ฌด์งˆ์„œํ•œ ์ˆซ์ž๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ์„ ํƒ์ •๋ ฌ์€ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์„ ์„ ํƒํ•ด์„œ ์ œ์ผ ์•ž์œผ๋กœ ๋ณด๋‚ด๋ฉด ์–ด๋–จ๊นŒ? ๋ผ๋Š” ๊ณ ๋ฏผ์—์„œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ์ •๋ ฌ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒ์ •๋ ฌ์€ ๋Œ€๋žต N* (N+1)/2 ๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ์š”. ๋น… ์˜ค ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ•˜๊ฒŒ๋œ๋‹ค๋ฉด O(N^2)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์„ ํƒ ์ •๋ ฌ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2). // 1 ~ 10 ๊นŒ์ง€ ์ •๋ ฌ ํ•˜๊ธฐ #include int main(void) { int arr[10] = { 1,3,2,5,7,6,10,9,8,4 }; int i, j, index, temp; for (i = 0; i < 10; i++) { int min = 11; for (j ..