문제 

 

 

풀이

나이와 이름은 가입한 순서대로 주어지므로 pair<int, string>으로 나이와 이름을 매칭시켜준 후, 나이만 비교해서 정렬하면 된다.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool cmp(pair<int, string> a, pair<int, string> b) {
	return a.first < b.first;
}

int main() {
	int n, age;
	string name;
	vector<pair<int, string>> v;

	cin >> n;

	for (int i = 0; i < n; i++) {
		cin >> age >> name;

		v.push_back(make_pair(age, name));
	}

	stable_sort(v.begin(), v.end(), cmp);

	for (int i = 0; i < v.size(); i++)
		cout << v[i].first << " " << v[i].second << "\n";

	return 0;
}

'백준 > 정렬' 카테고리의 다른 글

18870번: 좌표 압축 [C++]  (0) 2023.03.27
11651번 좌표 정렬하기 2 [C++]  (0) 2023.03.27
11650번: 좌표 정렬하기 [C++]  (0) 2023.03.27
1427번: 소트인사이드 [C++]  (0) 2023.03.27
2108번: 통계학 [C++]  (0) 2023.03.27

+ Recent posts