본문 바로가기

백준 알고리즘 풀이

백준 2751(수 정렬하기 2)

수 정렬하기 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