PS/백준
[백준/11650번/java] - 좌표 정렬하기
정코딩딩
2024. 3. 18. 14:57
import java.util.Arrays;
import java.util.Scanner;
public class Main {
/**
* 1. 첫줄에 입력받은 숫자로 열 개수 정하기 - N
* 2. N x 2 배열 만들기
* 3. for 문으로 저장하기
* 4. for 문으로 배열 순회하기
* 4-1. x 좌표를 기준으로 먼저 확인하고
* 4-2. x 좌표가 동일한 경우 y 좌표로 확인하기
* 5. for 문으로 배열 전부 출력하기
*/
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int[][] arr = new int[N][2];
for(int i = 0; i < N; i++){
arr[i][0] = scan.nextInt();
arr[i][1] = scan.nextInt();
}
Arrays.sort(arr , (a,b)->{
if(a[0] == b[0]) {
return Integer.compare(a[1], b[1]);
} else{
return Integer.compare(a[0],b[0]);
}
});
for(int j = 0; j < N; j++){
System.out.println(arr[j][0]+ " " + arr[j][1]);
}
}
}
먼저 첫줄에 배열을 몇행으로 할지 N 을 입력받는다.
그래서 N x 2 인 2차원 int 배열을 생성하고 for 문을 통해서 해당 배열에 숫자들을 저장한다.
그 후 Arrays.sort() 를 이용해서 람다 표현식으로 첫번째 열이 x 좌표를 나타내므로 첫번째 열을 비교하고 만약 동일하다면 두번째 줄을 비교해서 정렬하는 방식을 택했다. sort 를 끝내고 나면 for 문으로 배열을 순회하면서 출력해준다.
끝!