문제를 풀면서 x좌표 순으로 정렬, 같은 경우 y좌표 순으로 정렬
하는 문제가 나왔다.
이를 2차원 배열에 넣어서
arr[i][0]에는 x좌표
arr[i][1]에는 y좌표를 넣고 정렬하려 했다.
문제 예시처럼
3 4
1 1
1 -1
2 2
3 3
이렇게 주어진 경우는
int[][] arrays = { {3, 4}, {1, 1}, {1, -1}, {2, 2}, {3, 3} }
이런식으로 배열에 값이 들어간다
이런 배열을 x좌표, y좌표 순으로 배열하면
{ {1, -1}, {1, 1}, {2, 2}, {3, 3}, {3, 4}}
이렇게 될 것이다.
Comparator로 구현
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if (o1[0] == o2[0]) {
return o1[1] - o2[1];
} else {
return o1[0] - o2[0];
}
}
});
람다식 구현
Arrays.sort(arr, (o1, o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0]);
Comparator 메서드 체이닝과 람다 구현
Arrays.sort(arr, Comparator.comparingInt((int[] o) -> o[0]).thenComparing(((int[] o) -> o[1])));
'Languages > Java' 카테고리의 다른 글
[BOJ 길라잡이/Java] 2일차 #2750 수 정렬하기 (0) | 2025.03.06 |
---|---|
[BOJ 길라잡이/Java] 1일차 #1920 수 찾기 (0) | 2025.03.05 |
[Java] Map을 Value 값으로 오름차순, 내림차순 정렬하기 (0) | 2025.01.20 |
[Java] try-with-resources 예외 처리 (0) | 2024.08.22 |
[Java] Scanner vs BufferedReader 사용자 입력 받기 (0) | 2024.08.08 |