백준 algorithm
백준 10814 - 나이순 정렬
cosmohoo
2020. 7. 23. 20:07
반응형

=> pair형 vector 두 개를 사용해서 풀었습니다.
=> DB속 정규화 개념을 이용해 풀었습니다.
=> 입력되어지는 순서를 테이블 A와 B가 공유하는 값으로 설정하고, <seq, age> <seq, name> 형 pair를 생성하였습니다.
https://codingham.tistory.com/184
백준 11650 - 좌표 정렬하기
=> pair와 sort 함수를 사용할 줄 아는지 묻는 문제입니다. => x좌표와 y좌표는 같이 움직여야하는 하나의 객체이므로, 클래스로 표현하여도 되지만, 이미 c++ 에는 pair가 있습니다. => pair를 사용해서
codingham.tistory.com
=> 좌표 정렬하기에서 사용한 비교 함수를 사용해서 <seq, age>를 정렬한 후, 원하는 값을 출력하였습니다.
<code>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
bool cmp(const pair<int, int> &a, const pair<int, int> &b)
{
if (a.second == b.second) {
return a.first < b.first;
}
else {
return a.second < b.second;
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int N;
cin >> N;
vector<pair<int, int>> Num_Age;
vector<pair<int, string>> Num_Name;
int seq=0;
for(int i=0; i<N; i++)
{
int age;
cin >> age;
string name;
cin >> name;
pair<int, int> tmp = make_pair(seq, age);
pair<int, string> tmp2 = make_pair(seq++, name);
Num_Age.push_back(tmp);
Num_Name.push_back(tmp2);
}
sort(Num_Age.begin(), Num_Age.end(),cmp);
for(int i=0; i<Num_Age.size(); i++)
{
cout << Num_Age[i].second << " "<<Num_Name[Num_Age[i].first].second<<'\n';
}
return 0;
}

반응형