본문 바로가기
백준 문제풀이

BOJ/10814

by alscks 2024. 1. 9.
나이순 정렬

#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문을 돌며 나이에 해당하는 이름과 나이를 출력하면 내림차순대로 출력할 수 있음.

이러한 방법으로 나이를 출력함녀 또한 나이가 같으면 입력순서대로 출력하는 것 또한 만족할 수 있다.

'백준 문제풀이' 카테고리의 다른 글

BOJ/2529  (2) 2024.01.22
BOJ/2869  (0) 2024.01.12
BOJ/1427  (1) 2024.01.09
BOJ/10989  (2) 2024.01.08
BOJ/2828  (1) 2024.01.08