Problem Solving/BOJ

[백준 11651번] [정렬] [Compare 함수] 좌표 정렬하기 2

  • -
728x90
반응형

이 문제는 x,y좌표를 제시하고 있으므로 x와 y를 저장하는 구조체를 만든뒤 sorting하면 된다.

단, 구조체를 정렬하는 방식에 대해서는 정의되어 있지 않으므로 따로 compare함수를 정의하여 처리해주어야 한다.

 

위의 내용을 활용하여 코드를 작성하면 다음과 같다.

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cstdlib>

using namespace std;

typedef struct{
    int x;
    int y;
}point;

bool compare(const point value1, const point value2){
    if (value1.y == value2.y){
        return value1.x < value2.x;
    }
    else{
        return value1.y < value2.y;
    }

}

int main(void){
    int n;
    cin >> n;

    vector<point> cor_store;
    for(int i = 0; i < n; i++){
        point temp;
        cin >> temp.x >> temp.y;
        cor_store.push_back(temp);
    }

    sort(cor_store.begin(), cor_store.end(), compare);

    for(int i = 0; i < n ; i++){
        cout << cor_store[i].x << " " << cor_store[i].y << "\n";
    }

    return 0;

}
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.