[1] ๋ฌธ์
๋ฌธ์ ์ค๋ช
์ค์๊ฐ์ ์ด๋ค ์ฃผ์ด์ง ๊ฐ๋ค์ ํฌ๊ธฐ์ ์์๋๋ก ์ ๋ ฌํ์ ๋ ๊ฐ์ฅ ์ค์์ ์์นํ๋ ๊ฐ์ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด 1, 2, 7, 10, 11์ ์ค์๊ฐ์ 7์
๋๋ค. ์ ์ ๋ฐฐ์ด array๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ค์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
์ ํ์ฌํญ
- array์ ๊ธธ์ด๋ ํ์์ ๋๋ค.
- 0 < array์ ๊ธธ์ด < 100
- -1,000 < array์ ์์ < 1,000
์ ์ถ๋ ฅ ์
array | result |
[1, 2, 7, 10, 11] | 7 |
[9, -1, 0] | 0 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ณธ๋ฌธ๊ณผ ๋์ผํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- 9, -1, 0์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ฉด -1, 0, 9์ด๊ณ ๊ฐ์ฅ ์ค์์ ์์นํ๋ ๊ฐ์ 0์ ๋๋ค.
[2] ์ ๋ต ๋ฐ ํด์
#.1 ์ ๋ต ์ฝ๋
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <stdio.h> int solution(int array[], size_t array_len) { int i, j, temp = 0; // ๋ฒ๋ธ ์ ๋ ฌ์ ์ด์ฉํ์ฌ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ for (i = 1; i < array_len; i++) { for (j = 0; j < array_len - i; j++) { if (array[j] > array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } // ์ค์๊ฐ์ ๋ฐํ return array[array_len / 2]; // ์ฌ๋ฐ๋ฅธ ๋ฐฉ์์ผ๋ก ์ค์๊ฐ์ ๋ฐํ } | cs |
#.2 ํด์
1 | #include <stdio.h> | cs |
- stdio.h ํค๋ ํ์ผ์ ํฌํจ์ํจ๋ค. ์ด ํค๋ ํ์ผ์ ํ์ค ์ ์ถ๋ ฅ ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
1 | int solution(int array[], size_t array_len) { | cs |
- solution ํจ์๋ฅผ ์ ์ํ๋ค.
- ํจ์์ ๋ฐํ๊ฐ์ int ํ์ ์ด๋ค.
- ํจ์์๋ ๋ ๊ฐ์ ๋งค๊ฐ๋ณ์๊ฐ ์ ๋ฌ๋๋ค.
- array: ์ ์ํ ๋ฐฐ์ด์ ๋ํ๋ด๋ ํฌ์ธํฐ์ด๋ค. ์ ๋ ฌํด์ผ ํ ๊ฐ๋ค์ด ๋ค์ด ์๋ค.
- array_len: ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ size_t ํ์ ์ ๋ณ์์ด๋ค.
1 | int i, j, temp = 0; | cs |
- i, j, temp๋ผ๋ ์ธ ๊ฐ์ ์ ์ํ ๋ณ์๋ฅผ ์ ์ธํ๊ณ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- i์ j๋ ๋ฐ๋ณต๋ฌธ์์ ์ฌ์ฉํ ๋ณ์์ด๋ค.
- temp๋ ๊ฐ๋ค์ ๊ตํํ๊ธฐ ์ํด ์ฌ์ฉ๋ ์์ ๋ณ์์ด๋ค.
1 2 3 4 5 6 7 8 9 | for (i = 1; i < array_len; i++) { for (j = 0; j < array_len - i; j++) { if (array[j] > array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } | cs |
- ์ด ๋ถ๋ถ์ ๋ฒ๋ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๊ณ ์์ต๋๋ค.
- i์ j ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์ํํ๋ฉฐ ์ ๋ ฌ์ ์งํํ๋ค.
- ๋ง์ฝ array[j]๊ฐ array[j + 1]๋ณด๋ค ํฌ๋ค๋ฉด, ๋ ๊ฐ์ ๊ตํํ๋ค.
- ์ด๋ ๊ฒ ํ๋ฉด ํฐ ๊ฐ๋ค์ด ๋ฐฐ์ด์ ๋ท์ชฝ์ผ๋ก ์ด๋ํ๋ฉด์ ์ ๋ ฌ์ด ์ด๋ฃจ์ด์ง๋ค.
1 | return array[array_len / 2]; | cs |
- ์ ๋ ฌ๋ ๋ฐฐ์ด์ ์ค์๊ฐ์ ๋ฐํํ๋ค.
- array_len / 2 ์ธ๋ฑ์ค์ ์๋ ๊ฐ์ ๋ฐํํ์ฌ ์ค์๊ฐ์ ์ป๋๋ค.
[3] ์ฃผ์ํ ์
โ๏ธ ํ์ฌ ์ฝ๋์์ array_len - i์ j + 1 ๋ฑ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๋, ์ด ๊ฐ๋ค์ด ๋ฐฐ์ด์ ๋ฒ์๋ฅผ ๋ฒ์ด๋์ง ์๋๋ก ์ฃผ์ํด์ผ ํ๋ค.
[4] ์ถ๊ฐ ํ์ต
โ๏ธ ๋ฒ๋ธ ์ ๋ ฌ์ด๋? :
https://terms.naver.com/entry.naver?docId=2270437&cid=51173&categoryId=51173
โ๏ธ ๋ฒ๋ธ ์ ๋ ฌ์ ๋ํ C ํ๋ก๊ทธ๋จ:
https://terms.naver.com/entry.naver?docId=2270505&ref=y&cid=51173&categoryId=51173
[5] ๋๋ ์
๋ฒ๋ธ ์ ๋ ฌ์ ๋ฐฐ์ดํด์ผ ํ๋ ์์๊ฐ ์ปค์ง๋ฉด ์ ๋ ฌํ๋ ๋ฐ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ค์ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ๋ค.
๋์๊ฒ๋ ๋ฒ๋ธ ์ ๋ ฌ์ ์ด์ฉํ๋ ๊ฒ ์ต์ํ๊ณ ์ฌ์ด ๋ฐฉ๋ฒ์ด์์ง๋ง, ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ์๋ค๊ณ ํด์ ์ฐพ์๋ดค๋ค.
๋ฐ๋ก, 'qsort' ํจ์๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ํ๋ค.
โ๏ธ qsort ๋?:
https://blog.naver.com/ygs1090/223105957292
'ํฌ์ธํฐ', '๊ตฌ์กฐ์ฒด' ๊ฐ๋ ์ด ์ต์ํ์ง๊ฐ ์์์ ๋ฒ๋ธ ์ ๋ ฌ์ ์ฌ์ฉํ๋๋ฐ, ๋์ค์๋ ๊ณต๋ถ๋ฅผ ๋ ํด์ qsort ํจ์๋ ์ ์ฌ์ฉํด๋ณด๊ณ ์ถ๋ค!