알고리즘/백준풀이8. 정렬
(3) [C++] 백준 No.11650 : 좌표 정렬하기
Storage Gonie
2019. 5. 14. 19:57
반응형
문제
풀이
자세한 풀이 :
# C++(pair, vector, sort 사용 : first <-> second 를 뒤바꿔 입력받아 정렬한뒤 출력 때 다시 뒤집어 출력하는 방식)
- 가장 간단
#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;
int main()
{
int T;
cin >> T;
vector<pair<int, int>> vec(T);
for (int i = 0; i < T; i++)
cin >> vec[i].second >> vec[i].first;
sort(vec.begin(), vec.end());
for (int i = 0; i < T; i++)
cout << vec[i].second << " " << vec[i].first << "\n";
}
# C++(pair, vector, sort ( , , 비교함수) 사용)
#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;
bool cmp (const pair<int, int> &u, const pair<int, int> &v)
{
if (u.second < v.second)
return true;
else if(u.second == v.second)
return u.first < v.first;
else
return false;
}
int main()
{
int T;
cin >> T;
vector<pair<int, int>> vec(T);
for (int i = 0; i < T; i++)
cin >> vec[i].first >> vec[i].second;
sort(vec.begin(), vec.end(), cmp);
for (int i = 0; i < T; i++)
cout << vec[i].first << " " << vec[i].second << "\n";
}
# C++(pair, vector, sort( , , 람다함수))
#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;
int main()
{
int T;
cin >> T;
vector<pair<int, int>> vec(T);
for (int i = 0; i < T; i++)
cin >> vec[i].first >> vec[i].second;
sort(vec.begin(), vec.end(), [](pair<int, int> &u, pair<int, int> &v) -> bool {
if (u.second < v.second)
return true;
else if (u.second == v.second)
return u.first < v.first;
else
return false;
});
for (int i = 0; i < T; i++)
cout << vec[i].first << " " << vec[i].second << "\n";
}
반응형