PS/Baekjoon Online Judge

[백준 2750] 수 정렬하기 [C]

kimyoungrok 2021. 7. 18. 13:17

백준 - 2750


풀이

처음에는 입력받은 숫자에 해당하는 배열을 1로 초기화한 후 출력해주는 방법으로 접근했으나, 시작부터 틀렸다.

#include <stdio.h>
#define MAX 1001
int main(){
    int N, num, arr[MAX] = {0, };
    scanf("%d", &N);
    while (N--){
        scanf("%d", &num);
        arr[num-1] = 1;
    }
    for (int i = 0; i < MAX; i++)
        if (arr[i])
            printf("%d\n", i + 1);
}

아마도, "수의 절대값이 1,000보다 작거나 같은 정수"라는게 양수가 아닌, 음수 또한 입력되는 것으로 추측되기 때문에 틀린 것 같다.

Insertion Sort를 사용해 해결했다.


소스코드

#include <stdio.h>
int main() {
    int N, temp, num[1000] = { 0, };
    scanf("%d", &N);
    for (int i = 0; i < N; i++)
        scanf("%d", &num[i]);
    for (int i = 1; i < N; i++)
        for (int j = 0; j < i; j++)
            if (num[j] > num[i]) {
                temp = num[i];
                for (int k = i; k >= j; k--)
                    num[k] = num[k - 1];
                num[j] = temp;
                break;
            }
    for (int i = 0; i < N; i++)
        printf("%d\n", num[i]);
}

출처

 

2750번: 수 정렬하기

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

www.acmicpc.net

 

'PS > Baekjoon Online Judge' 카테고리의 다른 글

[백준 2588] 곱셈 [C]  (0) 2021.07.18
[백준 10430] 나머지 [C]  (0) 2021.07.18
[백준 10989] 수 정렬하기 3 [C]  (0) 2021.07.17
[백준 1085] 직사각형에서 탈출 [C]  (0) 2021.07.17
[백준 1978] 소수 찾기 [C]  (0) 2021.07.17