728x90
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int[][] arr = new int[num][2];
for(int i = 0 ; i < num ; i++) {
String[] str = br.readLine().split(" ");
arr[i][0] = Integer.parseInt(str[0]);
arr[i][1] = Integer.parseInt(str[1]);
}
Arrays.sort(arr, (e1, e2) -> {
if(e1[0] == e2[0]) {
return e1[1] - e2[1];
} else {
return e1[0] - e2[0];
}
});
for(int i = 0; i < num; i++) {
System.out.println(arr[i][0] + " " + arr[i][1]);
}
}
}
Arrays.sort의 기능을 람다식으로 확장시키는 방법으로 문제를 해결하였다.
Arrays.sort의 기능을 뜯어보면 비교를 음수, 양수를 기준으로 하는데
비교할 두개의 인자를 받아와 2차원 배열에서도 동작할 수 있도록 기능을 확장시켰다.
람다식은 Java 8부터 도입된 함수형 프로그래밍 패러다임을 지원하기 위한 기능입니다. 람다식은 익명 함수를 생성하는데 사용되며, 일반적으로 메서드의 인자로 전달하거나 변수에 할당되어 사용됩니다.
728x90
'백준 단계별' 카테고리의 다른 글
[Java] 백준 10814: 나이순 정렬 (0) | 2023.02.16 |
---|---|
[Java] 백준 1181: 단어 정렬 (1) | 2023.02.16 |
[Java] 백준 1427: 소트인사이드 (0) | 2023.02.15 |
[Java] 백준 2108: 통계학 (0) | 2023.02.14 |
[Java] 백준 10989: 수 정렬하기 3 (0) | 2023.02.14 |