잡동사니/[2022] 회로이론

[백준/C] 2751번 수 정렬하기 2

heylo 2022. 12. 11. 02:08

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

 

2751번: 수 정렬하기 2

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

www.acmicpc.net

 

 

 

C언어 내장함수 qsort() 퀵 소트 함수를 이용하였다.

퀵소트 구현 아직 못한당. 함수 이용하면 편하다

 

 #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define MAX 1000001

int compare(const void *a, const void *b) // 비교함수: 뒷 수가 크면 -1, 같으면 0, 앞의 수가 크면 1
{
    int num1 = *(int *)a;
    int num2 = *(int *)b;
 
    if (num1 < num2)
        return -1;
    if (num1 > num2)
        return 1;
    return 0;
}

int main()
{
    int n;          // 정수의 개수
    int num[MAX];   // 입력할 정수
    int i, k;       // 반복
    
    scanf("%d", &n);
    
    for(i=0; i<n; i++){
        scanf("%d", &num[i]);
    }
    
    
    qsort(num, n, sizeof(int), compare); // (정렬할 배열, 요소개수, 요소크기, 비교함수)
    
    for(i=0;i<n; i++){
        printf("%d\n", num[i]);
    }

    return 0;
}