티스토리 뷰

Algorithm/BOJ

백준 10814번 C++

poopooreum 2023. 9. 8. 06:52
반응형
백준 10814번 나이순 정렬

https://www.acmicpc.net/problem/10814

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net



정답 코드

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

using namespace std;

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

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int N, age;
	string name;
	vector<pair<int, string>> vec;

	cin >> N;
	for (auto i = 0; i < N; i++)
	{
		cin >> age >> name;
		vec.push_back(make_pair(age, name));
	}
	stable_sort(vec.begin(), vec.end(), cmp);

	for (auto i = 0; i < vec.size(); i++)
	{
		cout << vec[i].first << " " << vec[i].second << "\n";
	}
}

문제 풀이

숫자, 문자열 쌍을 가진 pair를 만들어주고 입력을 받았습니다. 그 후 sort함수로 정렬을 하였고 이때 cmp함수를 변경하였습니다. cmp함수의 매개변수는 두 개이고 나이가 기준값이므로 각 pair쌍의 first값끼리 비교를 해줍니다.이런 식으로 cmp함수를
변경해서 정렬하는 문제들이 많기 때문에 sort함수의 cmp함수를 공부하는 것도 좋은 방법인 것 같습니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 10816번 C++  (0) 2023.09.08
백준 10815번 C++  (0) 2023.09.08
백준 10813번 C++  (0) 2023.09.08
백준 10811번 C++  (0) 2023.09.05
백준 10810번 C++  (0) 2023.09.05
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함