관리 메뉴

cococo-coding

11650번. 좌표 정렬하기 본문

[BOJ] 코드 모음/C++_learning 문제집

11650번. 좌표 정렬하기

_dani 2024. 1. 7. 19:37

문제

풀이 방법

어떻게 풀지 감이 안 와서 구글링을 했다. 

대부분 분들이 vecotr를 이용해서 풀이한 것을 보고 풀었다.

 

좌표와 같이 두 가지 값을 이용해야 할 때는 아래와 같이 이용하면 된다.

//좌표값 저장하기
vector<pair<int, int>> v;

//첫 번째 값에 접근하기
//벡터이름.first
v.first;

//두 번째 값에 접근하기
//벡터이름.second
v.second;

문제에 맞는 타입으로 int로 지정했지만, 각각 다른 타입으로 지정가능하다.

처음 값은 first, 두 번째 값은 second로 접근한다.

 

코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

/*
1. 점의 개수 n을 입력받는다.
2. n개의 점들의 좌표를 입력받는다.
3. 각 점들을 x좌표>y좌표 순으로 오름차순 정렬한다.
4. 정렬한 좌표들을 출력한다.
*/

 vector<pair<int,int>> v; //벡터 생성

int main() {
    //1
    int n;
    cin >> n;

    //2
    int x,y;
    for (int i = 0; i < n; i++){
        cin >> x >> y;
        v.push_back({x,y}); //좌표 입력받기
    }

    //3
    sort(v.begin(),v.end());

    //4
    for(int i=0; i<n; i++){
        cout << v[i].first << ' ' << v[i].second << '\n';
    }

    return 0;
}