Java로 풀어보고 C++로도 풀어봤다.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
ArrayList<Loc> list = new ArrayList<>();
for(int i = 0; i < n; i++) {
list.add(new Loc(in.nextInt(), in.nextInt()));
}
Collections.sort(list, new Comparator<Loc>() {
@Override
public int compare(Loc o1, Loc o2) {
if(o1.y == o2.y)
return o1.x - o2.x;
else
return o1.y - o2.y;
}
});
for(Loc i : list)
System.out.println(i);
}
}
class Loc{
int x;
int y;
public Loc(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return x + " " + y;
}
}
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<pair<int, int>> v;
for (int i = 0; i < n; i++) {
int x, y;
cin >> x >> y;
v.push_back(make_pair(y, x));
}
sort(v.begin(), v.end());
for (pair<int, int> p : v) {
cout << p.second << " " << p.first << '\n';
}
return 0;
}
pair는 첫 번째 원소(first)를 기준으로 오름차순 정렬, first가 같으면 두 번째 원소(second)를 기준으로 오름차순 정렬
'알고리즘 문제' 카테고리의 다른 글
[백준] 2656번 전깃줄 (0) | 2020.02.06 |
---|---|
[백준] 11054번 가장 긴 바이토닉 부분 수열 (0) | 2020.02.06 |
[백준] 2583번 영역 구하기 (0) | 2020.02.06 |
[백준] 2468번 안전영역 (0) | 2020.02.06 |
[백준] 10026번 적록색약 (0) | 2020.02.06 |