-
백준 16212번 : 정열적인 정렬 (C 언어)c c++ 언어 공부 2023. 8. 28. 12:34
https://www.acmicpc.net/problem/16212
16212번: 정열적인 정렬
형준이는 수열을 하나 가지고 있다. 형준이는 수열을 정열적으로 정렬해보려 한다. 과연, 정렬할 수 있을까?
www.acmicpc.net
Code:
123456789101112131415161718192021222324#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() {int n;scanf("%d", &n);int arr[500001] = { 0, };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 ", arr[i]);}}cs 문제 설명:
주어진 문제에서는 길이가 N인 수열을 오름차순으로 정렬하는 문제를 해결해야 합니다. 입력으로는 수열의 길이 N과 N개의 정수 ai가 주어지며, 출력으로는 오름차순으로 정렬된 수열을 공백을 사이에 두고 출력해야 합니다.
코드 설명:
- compare 함수는 퀵 정렬에서 사용할 비교 함수입니다. qsort 함수에 사용되어 두 원소를 비교하여 정렬 순서를 결정합니다.
- main 함수에서는 먼저 수열의 길이 N을 입력 받습니다.
- 배열 arr을 선언하고, 이 배열에 수열의 원소를 입력 받습니다.
- qsort 함수를 사용하여 배열 arr을 비교 함수 compare를 기반으로 정렬합니다. 이렇게 하면 수열이 오름차순으로 정렬됩니다.
- 정렬된 배열을 반복문을 사용하여 출력하고, 공백을 사이에 두고 하나씩 출력합니다.
'c c++ 언어 공부' 카테고리의 다른 글
백준 14495번 : 피보나치 비스무리한 수열(C 언어) (0) 2023.08.29 백준 15624번 : 피보나치 수 7(C 언어) (0) 2023.08.28 백준 5800번 : 성적 통계 (C 언어) (0) 2023.08.26 백준 11931번 : 수 정렬하기 4(C 언어) (0) 2023.08.26 백준 1439번 : 뒤집기 (C 언어) (0) 2023.08.24