문제
N개의 수가 주어졌을 때, 이를 내림차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 내림차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제 입력 1
5 1 2 3 4 5 |
예제 출력 1
5 4 3 2 1 |
더보기
Solution
#include<stdio.h>
#include<stdlib.h>
int compare(const void *x,const void *y)
{
return *(int *)x>*(int *)y?1:*(int *)x==*(int *)y?0:-1;
}
int main(void)
{
int N, *arr=NULL;
scanf("%d", &N);
arr=(int *)malloc(N*sizeof(int));
for(int i=0;i<N;i++)
scanf("%d", &arr[i]);
qsort((void *)arr,(size_t)N,sizeof(int),compare);
for(int i=N-1;i>=0;i--)
printf("%d\n", arr[i]);
free(arr);
return 0;
}
728x90
'백준 알고리즘' 카테고리의 다른 글
<백준 알고리즘> 10989번: 수 정렬하기 3 (0) | 2020.09.18 |
---|---|
<백준 알고리즘> 2751번: 수 정렬하기 2 (0) | 2020.09.18 |
<백준 알고리즘> 2606번: 바이러스 (0) | 2020.09.17 |
<백준 알고리즘> 2217번: 로프 (0) | 2020.09.17 |
<백준 알고리즘> 10867번: 중복 빼고 정렬하기 (0) | 2020.09.15 |