반응형
이전 글에서 몇가지만 바꾸고 그대로 풀면 된다.
https://pandastic-dev.tistory.com/109
[백준] 11650 - 좌표 정렬하기 (JAVA/ 자바)
처음에는 Arrays.sort()에 Comparator.comparingInt()를 이용해서 비교할 수 있다기에 람다식을 이용해 비교해봤었다. ❗️❗️ 틀린 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamR
pandastic-dev.tistory.com
Arrays.sort()에 Lambda 를 사용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
int[][] arr = new int[N][2];
for(int i=0; i<N; i++){
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr, (e1, e2)->{
if(e1[1] == e2[1]){
return e1[0] - e2[0];
}else{
return e1[1] - e2[1];
}
});
for(int i=0; i<N; i++){
sb.append(arr[i][0] + " ");
sb.append(arr[i][1] + "\n");
}
System.out.println(sb);
}
}
Comparator 익명 클래스 구현을 사용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
int[][] arr = new int[N][2];
for(int i=0; i<N; i++){
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[]e1, int[] e2){
if(e1[1] == e2[1]) {
return e1[0] - e2[0];
}
else {
return e1[1] - e2[1];
}
}
});
for(int i=0; i<N; i++){
sb.append(arr[i][0] + " ");
sb.append(arr[i][1] + "\n");
}
System.out.println(sb);
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 10814 - 나이순 정렬 (JAVA/ 자바) (0) | 2024.06.18 |
---|---|
[백준] 1181 - 단어 정렬 (JAVA/ 자바) (1) | 2024.06.13 |
[백준] 11650 - 좌표 정렬하기 (JAVA/ 자바) (0) | 2024.06.09 |
[백준] 1427 - 소트인사이드 (JAVA/ 자바) (0) | 2024.06.07 |
[백준] 10989 - 수 정렬하기 3 (JAVA/ 자바) (1) | 2024.06.06 |