본문 바로가기

백준/C

[BaeKJoon/C] 백준2752 c 세수정렬

반응형

https://www.acmicpc.net/problem/2752

 

2752번: 세수정렬

숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.

www.acmicpc.net

 

문제

풀이

12번 줄에 k는 0부터 3-1인 2까지 반복합니다. 여기서 -1을 하는 이유는 9와 7을 비교 7과 5를 비교 

즉, 현재값과 다음값과 비교하게 되는데 마지막 1은 배열의 범위를 벗어난 값과 비교하게 되고 이상한 값이 나오기 때문이다. 그래서 배열의 범위를 벗어나지 않도록 마지막 값 바로 앞에서 반복을 끝내야 한다.

 

 

13-15줄 

 

이 과정을 반복해 주면

1 2 3 4 5 7 8 9 가 나올것이다.

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
 
int main() {
 
    int a[100000];
    int tmp;
    for (int i = 0; i < 3; i++) {
        scanf("%d"&a[i]);
    }
        for (int j = 0; j < 3; j++) {
            for (int k = 0; k < 3-1; k++) {
                if (a[k] > a[k + 1]) { //a[k] < a[k+1] = 내림차순
                    tmp = a[k];
                    a[k] = a[k + 1];
                    a[k + 1= tmp;
                }
            }
        }
 
        for (int i = 0; i < 3; i++) {
            printf("%d ", a[i]);
 
        }
}
 
cs
 

 

 

반응형