1. 문제 해결 전략
기존의 정렬방식의 클래스에 변수 하나만 더 추가하면 되는 간단한 문제이다.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
class person
{
public:
string name;
int age;
int i;
person(string name, int age, int i)
{
this->name = name;
this->age = age;
this->i = i;
}
};
vector<person> v;
bool compare(const person& p1, const person& p2)
{
if (p1.age == p2.age)
{
return p1.i < p2.i;
}
else
{
return p1.age < p2.age;
}
}
int main(void)
{
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
int ag;
string nm;
cin >> ag >> nm;
v.push_back(person(nm, ag, i));
}
sort(v.begin(), v.end(), compare);
for (int i = 0; i < n; i++)
{
printf("%d %s\n", v[i].age, v[i].name.c_str());
}
return 0;
}
가입순으로 정렬하는 방식이 들어가있기 때문에, vector에 pushback할 때 번호를 함께 입력해 줄
멤버 변수를 만들고 생성자를 초기화 해 준다.
2. 걸린 시간
10초?
3. 느낀점
느낄게 없는 문제
4. 링크
https://www.acmicpc.net/problem/10814
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[정렬] 11652. 카드 (0) | 2020.04.21 |
---|---|
[정렬] 10825. 국영수 (0) | 2020.02.18 |
[정렬] 11650. 좌표 정렬 (0) | 2020.02.18 |
[정렬] 2571. 수 정렬하기 2 (0) | 2020.02.18 |
[dp] 1149. RGB 거리 (0) | 2020.02.14 |