궤도

[백준] 10814번 : 나이순 정렬 본문

💻 현생/⛓ 알고리즘

[백준] 10814번 : 나이순 정렬

영이오 2020. 10. 15. 22:50

문제

 


풀이

 

내가 극찬하는 sort 함수는 사실 stable을 보장하지 않는다. 근데 이 문제는 stable sort를 요구한다. 그렇다면 새로 정렬함수를 짜야할까? 그렇지 않다. stable_sort 함수가 있다. 정말 친절하지 않을수가 없다. 이렇게 stable이 보장됐으니, 나이만 고려하면 된다.


소스코드

 

#include <iostream>
#include <algorithm>
using namespace std;

struct info {
	int age;
	char name[101];
};

bool cmp(const info& p1, const info& p2) {
	if (p1.age < p2.age) //가입 순이고 stable이면 그냥 나이만 고려하면 됨
		return true;
	else
		return false;
}

int main() {
	int N, i;

	cin >> N;
	info* arr = new info[N];
	for (i = 0; i < N; i++)
		cin >> arr[i].age >> arr[i].name;
	stable_sort(arr, arr + N, cmp); //그냥 sort는 stable 보장하지 않음
	for (i = 0; i < N; i++)
		cout << arr[i].age << ' ' << arr[i].name << '\n';
}
Comments