

https://www.acmicpc.net/problem/2751
2751번: 수 정렬하기 2
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
풀이
#include <stdio.h>
#include <stdlib.h>
// qsort 함수
int compare(const void* first, const void* second) {
// first, second 포인터는 void형 이므로
// 리턴할 값의 int형으로 강제 형변환
int a = *(int*)first;
int b = *(int*)second;
// 오름차순이라면 -1 리턴값일때 변경
if (a < b) return -1;
else if (a > b) return 1;
else return 0;
}
int main() {
int n;
scanf("%d", &n);
int* arr = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
// qsort(배열, 크기, 원소 하나의 크기, 비교 수행 함수)
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++) printf("%d\n", arr[i]);
free(arr);
return 0;
}
qsort() 함수를 통한 정렬으로 시간제한 문제를 해결
병합 정렬 풀이 추가 예정
'코딩 > 백준 문제 (실버)' 카테고리의 다른 글
[백준/11651/C언어] 좌표 정렬하기 2 _ 풀이 (0) | 2023.09.12 |
---|---|
[백준/1427/C언어] 소트인사이드 _ 풀이 (0) | 2023.09.12 |
[백준/2839/C언어] 설탕 배달 _ 풀이 (2) | 2023.09.06 |
[백준/1436/C언어] 영화감독 숌 _ 풀이 (0) | 2023.09.03 |
[백준/24313/C언어] 알고리즘 수업 - 점근적 표기 1 _ 풀이 (0) | 2023.09.02 |