๐ก ์ด๋ฒ์๋ ์ ํ์ ๋ ฌ ํ๋ ๋ฒ์ ๋ฐฐ์๋ณด์๋ค.
๋ฌธ์
๐ก ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ํ์ ๋ ฌ๋๊ฒ ์ฝ๋๋ฅผ ๊ตฌํํ์์ค
๋น์ฐํ ์๋ ๋ฌธ์ ๊ธฐ์ ๋์ถฉ ๋ด๊ฐ ๋ง๋ค์๋ค.
ํด๋ต
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <limits.h>
#define SIZE 1000
int a[SIZE];
int swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main(void) {
int n, min, index;
scanf("%d", &n);
for (int i = 0 ; i < n ; i++) {
scanf("%d", &a[i]);
}
for (int i = 0 ; i < n ; i++) {
min = INT_MAX;
for (int j = i ; j < n ; j++) {
if (min > a[j]) {
min = a[j];
index = j;
}
}
swap(&a[i], &a[index]);
}
for (int i = 0 ; i < n ; i++) {
printf("%d ", a[i]);
}
return 0;
}
์ค๋ช
์ ํ์ ๋ ฌ์ด๋ ๊ฐ์ฅ ์์ ๊ฒ์ ์ ํํด์ ์์ผ๋ก ๋ณด๋ด๋ ์ ๋ ฌ ๊ธฐ๋ฒ์ด๋ค.
๊ฐ์ฅ ์์ ๊ฒ์ ์ ํํ๋ ๋ฐ์ N๋ฒ, ์์ผ๋ก ๋ณด๋ด๋ ๋ฐ์ N๋ฒ์ ์ฐ์ฐ์ผ๋ก ๐(๐์ ๊ณฑ)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
swap ํจ์
int swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
- temp์ a๊ฐ์ ๋ฃ์ด์ค๋ค.
- a์ b๊ฐ์ ๋ฃ์ด์ค๋ค.
- b์ temp(์ด์ ์ ๋ฃ์ด์ฃผ์๋ a๊ฐ)์ ๋ฃ์ด์ค๋ค.
main ํจ์
int main(void) {
int n, min, index; // min์ ํ๋ฒ ๊ฒ์ ํ ๋๋ง๋ค ๊ฐ์ฅ ์์ ๊ฐ
scanf("%d", &n);
// a๋ฐฐ์ด์ ๊ฐ์ ๋ฃ์ด์ฃผ๋ ์ญํ
for (int i = 0 ; i < n ; i++) {
scanf("%d", &a[i]);
}
for (int i = 0 ; i < n ; i++) {
min = INT_MAX; // ์์๊ฐ์ ํญ์ ์ ํํ๊ธฐ ์ํด ์ผ๋จ ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ฃ์ด์ค๋ค.
// i๋ถํฐ ์ถ๋ฐํด์ n๊น์ง ๊ฐ๋ฉด์
for (int j = i ; j < n ; j++) {
// ํ์ฌ ๋ณด๊ณ ์๋ ์์๊ฐ min๊ฐ๋ณด๋ค ์๋ค๋ฉด
if (min > a[j]) {
min = a[j];
// ๊ฐ์ฅ ์์ ๊ฐ์ด ์์นํ๋ ๊ณณ์ด index
index = j;
}
}
// ํด๋น i๋ฒ์งธ ๊ฐ๊ณผ index์ ๊ฐ์ ๋ฐ๊ฟ์ฃผ๋ฉด ๋จ
swap(&a[i], &a[index]);
}
for (int i = 0 ; i < n ; i++) {
printf("%d ", a[i]);
}
return 0;
}
๋๋์ฒด n ์ ์ ์ฒด๊ฐ ๋ฌด์์ธ์ง ์ ํ ๋ชจ๋ฅด๊ฒ ๋ค.
๋ค๋ฅธ ๋ณ์๋ค๊ณผ ์ฝ๋๋ค์ ์ดํดํ์์ผ๋ n ์ด ์ดํด๊ฐ ๋์ง ์์ผ๋ ์ฐ์ฐํ ๊ธฐ๋ถ์ด๋ค.
length๋ฅผ ๋ปํ๋ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ฐ ํ …
๋ง์น๋ฉฐ..
๋์ค์ ๋ด๊ฐ ์ด ํฌ์คํ ์ ๋ณด๋ฉด์ ์ด๊ฒ๋ ๋ชฐ๋๊ตฌ๋ ํ๋ ๋ ์ด ์์ผ๋ฉด ์ข๊ฒ ๋ค.
์ง๊ธ์ ๋๋ฌด ์ด๋ ค์์ ์ฉ์ฉ๋งค๋ ์ค์ด๋ค.
๋๊น์ง ๊ฒ์ํด์ ์ฐพ์๋ณด๊ณ ์ถ์ผ๋ ์ด๊ฒ๋ง ์ฐพ์๋ณผ ์๋ ์๊ณ ๋๊ฐ์ ์์ ์ ์ค๋ช ์ด ๋์ด์๋ ๊ฒ์ด ์์ด์ ๋ต๋ตํ๋ค.