문제
동규는 세수를 하다가 정렬이 하고싶어졌다.
숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다.
숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.
입력
숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.
출력
제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다.
해결 방법
세수를 하다가 세개의 수를 정렬하고 싶어졌다는 어이없는 문제
이 문제 역시 bubblesort를 사용하면 초스피드로 끝낼 수 있다!
내 코드(C)
/*[2752] 세수정렬*/
#include <stdio.h>
void bubble_sort(int list[], int n);
int main(void)
{
int num;
int ascend[3];
for (int i = 0; i < 3; i++) {
scanf_s("%d", &num);
ascend[i] = num;
}
bubble_sort(ascend, 3); /*오름차순으로 정렬*/
for (int i = 0; i < 3; i++) {
printf("%d ", ascend[i]);
}
}
void bubble_sort(int list[], int n)
{
int flag = 1, temp;
for (int i = n - 1; flag > 0; i--) {
flag = 0;
for (int j = 0; j < i; j++) {
if (list[j] > list[j + 1]) {
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
flag = 1;
}
}
}
}
반응형
'Baekjoon > 정렬' 카테고리의 다른 글
[1427] 소트인사이드 (0) | 2019.09.15 |
---|---|
[2751] 수 정렬하기2 (0) | 2019.06.26 |
[2750] 수 정렬하기 (0) | 2019.05.19 |
[11651] 좌표 정렬하기 2(C) (0) | 2019.05.19 |
[1026] 보물 (0) | 2019.05.12 |