수 정렬하기 2 성공
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 | 256 MB | 162873 | 44674 | 30539 | 30.062% |
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제 입력 1 복사
5
5
4
3
2
1
예제 출력 1 복사
1
2
3
4
5
<코드>
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
int compare(const void* a, const void* b)
{
if (*(int*)a > *(int*)b)
return 1;
else if (*(int*)a < *(int*)b)
{
return -1;
}
else
return 0;
}
int main(void)
{
int N;
int* arr;
scanf("%d", &N);
arr = (int*)malloc(sizeof(int) * N);
for (int i = 0; i < N; i++)
scanf("%d", &arr[i]);
qsort(arr, N, sizeof(int), compare);
for (int i = 0; i < N; i++)
printf("%d\n", arr[i]);
free(arr);
}
<풀이>
시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀기위해서 언어에 내장된 정렬 함수인 qsort를 사용했다.
'백준 알고리즘 풀이' 카테고리의 다른 글
백준 1427(소트인사이드) C언어 (0) | 2022.01.28 |
---|---|
백준 2108 (통계학) (0) | 2022.01.27 |
백준 2750 (수 정렬하기) (0) | 2022.01.26 |
백준 7568 (0) | 2022.01.26 |
백준 2798 (0) | 2022.01.25 |