문제 풀이 시나리오
1. 입력값을 2차원 배열에 저장
2. 2차원 배열[ [],[],[],]을 ( y오름차순->x오름차순 )정렬
문제
첫번째 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
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());
}
//함수형 인터페이스 Comparator 의 메서드 compare(e1,e2)
// 양수 반환 -> e2 인덱스 0 일때 e1 인덱스 1(또는 양수)
// 음수 반환 -> e2 인덱스 0 일때 e1 인덱스 -1(또는 음수)
Arrays.sort(arr,(e1,e2)->{
//y 가 같으면 x 오름차순
if (e1[1] == e2[1])
return e1[0] - e2[0] ;
//y 오름차순
else
return e1[1] - e2[1];
});
StringBuilder sb = new StringBuilder();
for (int[] ar : arr) {
sb.append(ar[0] +" " + ar[1]).append('\n');
}
System.out.print(sb);
}
}
두번째 풀이
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));
int n = Integer.parseInt(br.readLine());
Integer[][] arr = new Integer[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());
}
//함수형 인터페이스 Comparator 의 메서드 compare(e1,e2)
// 양수 반환 -> e1 인덱스 1 e2 인덱스 0
// 음수 반환 -> e1 인덱스 -1 e2 인덱스 0
Arrays.sort(arr,new Comparator<Integer[]>() {
@Override
public int compare(Integer[] o1, Integer[] o2) {
if(o1[1] == o2[1])
return o1[0]-o2[0];
return o1[1] - o2[1];
}
});
StringBuilder sb = new StringBuilder();
for (Integer[] ar : arr) {
sb.append(ar[0] +" " + ar[1]).append('\n');
}
System.out.print(sb);
}
}
'백준' 카테고리의 다른 글
[자바 :: 1181 단어 정렬] (0) | 2022.07.30 |
---|---|
[자바 :: 백준 11650 좌표 정렬하기] (0) | 2022.07.30 |
[자바 :: 백준 2750 수 정렬하기(중복된 수 없음) ] (0) | 2022.07.30 |
[자바 :: 프로그래머스 정수 내림차순으로 나열하기 ] (0) | 2022.07.28 |
[ 자바 :: 백준 10815 : 숫자카드] (0) | 2022.07.28 |