관리 메뉴

Storage Gonie

(3) [C++] 백준 No.11650 : 좌표 정렬하기 본문

알고리즘/백준풀이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";
}
반응형
Comments