https://www.acmicpc.net/problem/11651
11651번: 좌표 정렬하기 2
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
문제
코드
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); sc.nextLine();
int arr[][] = new int[n][2];
for(int i=0;i<n;i++) {
arr[i][0] = sc.nextInt();
arr[i][1] = sc.nextInt();
sc.nextLine();
}
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if(o1[1]==o2[1]){
return o1[0]-o2[0];
}
else {
return o1[1]-o2[1];
}
}
});
for(int i=0;i<n;i++)
System.out.println(arr[i][0] + " " + arr[i][1]);
}
}
해결방법
Arrays.sort()를 사용해 2차원 배열을 y좌표로 오름차순 정렬하고 y좌표가 같다면 x좌표로 오름차순 정렬하여 문제를 해결하였다.
'알고리즘 > 백준' 카테고리의 다른 글
11659번 : 구간 합 구하기 4 (0) | 2022.07.11 |
---|---|
16435번 : 스네이크버드 (0) | 2022.07.06 |
2875번 : 대회 or 인턴 (0) | 2022.07.06 |
1343번 : 폴리오미노 (0) | 2022.07.04 |
2847번 : 게임을 만든 동준이 (0) | 2022.06.30 |