C/BaekJoon

[C] 백준 2750 - 수 정렬하기 (순차 정렬) | BackJoon

sngsp 2023. 7. 22. 12:34

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1

5
5
2
3
4
1

예제 출력 1

1
2
3
4
5

Code

#include <stdio.h>

int main() {
    int N;
    int arr[1000] = { 0 };
    int tmp;
    // 수 입력받기
    scanf("%d", &N);

    //N번 반복하여 배열 항목 입력받기
    for (int i = 0; i < N; i++) {
        scanf("%d", &arr[i]);
    }
    // 이중포문으로 스왑하기 index[0]과 index[1~N] -> for문에서 0이 먼저가 아니라 1이 먼저어야 하는 듯?
    for (int i = 1; i < N; i++) {
        for (int j = 0; j < N; j++) {
            // arr[1~N-1]이 arr[0~N-1]보다 작다면 스왑하기
            if (arr[j] > arr[i]) {
                tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
        }
    }

    for (int i = 0; i < N; i++) {
        printf("%d\n", arr[i]);
    }

    return 0;
}