나이순 정렬
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> char name[100001][101]; int main(void) { int cnt; int ageArr[100001]; scanf("%d", &cnt); for (int i = 1; i <= cnt; i++) { scanf("%d %s", &ageArr[i], &name[i]); } for (int age = 1; age <= 200; age++) { for (int N = 1; N <= cnt; N++) { if (ageArr[N] == age) { printf("%d %s\n", ageArr[N], name[N]); } } } return 0; }
정렬해야 할 데이터가 최대 N=100000개임으로 시간 초과 에러가 발생할 수 있다. 따라서 일반적인 정렬 알고리즘을 사용할 수 없음.
나이는 무조건 범위가 1~200으로 정해져 있기 때문에 나이순으로 for문을 돌며 나이에 해당하는 이름과 나이를 출력하면 내림차순대로 출력할 수 있음.
이러한 방법으로 나이를 출력함녀 또한 나이가 같으면 입력순서대로 출력하는 것 또한 만족할 수 있다.