10814: 나이순 정렬
2022. 5. 9. 00:42ㆍC언어/백준
-Class2 : Silver5
https://www.acmicpc.net/problem/10814
-결과
-코드
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int age;
int idx;
char name[101];
}member;
int compare(const void* first, const void* second)
{
member* a = (member*)first;
member* b = (member*)second;
if (a->age < b->age)
return -1;
else if (a->age > b->age)
return 1;
else
{
if (a->idx < b->idx)
return -1;
else
return 1;
}
return 0;
}
int main()
{
int i, n;
member* list;
scanf("%d", &n);
list = (member*)malloc(n * sizeof(member));
for (i = 0; i < n; i++)
{
scanf(" %d %s", &list[i].age, list[i].name);
list[i].idx = i;
}
qsort(list, n, sizeof(list[0]), compare);
for (i = 0; i < n; i++)
{
printf("%d %s\n", list[i].age, list[i].name);
}
return 0;
}
-풀이
이 문제는 구조체를 이용하여 나이, 인덱스 번호, 이름을 묶어서 입력핟고 qsort를 이용해 정렬해야 한다.
이름 길이가 100보다 작거나 같은 문자열이기 때문에 name[101]로 짜야 한다.
리스트로 나이와 이름을 입력받고, 출력한다.
'C언어 > 백준' 카테고리의 다른 글
11650: 좌표 정렬하기 (0) | 2022.05.21 |
---|---|
10989: 수 정렬하기 3 (0) | 2022.05.09 |
7568: 덩치 (0) | 2022.05.09 |
17478: 재귀함수가 뭔가요? (0) | 2022.05.05 |
2751: 수 정렬하기2 (0) | 2022.05.05 |