BAEKJOON 11650번 - 좌표 정렬하기

Kim Hyen Su·2023년 8월 10일
0

⏲️ 알고리즘

목록 보기
33/95

11650번

문제

문제 풀이

  • Arrays의 sort()는 2차원 배열을 정렬할 수 없다. 따라서, sort() 메서드 안에 매개변수인 Comparator를 람다식으로 구현하여 정렬 기준을 직접 지정해줘야 한다.
sort(T[] a, Comparator<? super T> c)
interface Comparator<T> 를 람다식(익명객체)으로 구현하여 일회용으로 사용한다.

제출 코드

import java.io.*;
import java.util.*;

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());
        }
        
        Arrays.sort(arr,(e1,e2)->{
            
            if(e1[0] == e2[0]){
                return e1[1] - e2[1];
            }else{
                return e1[0] - e2[0];
            }
        });
        
        StringBuilder sb = new StringBuilder();
        for(int i=0; i< N; i++){
            sb.append(arr[i][0] + " " + arr[i][1]).append("\n");
        }
        
        System.out.println(sb);
        br.close();
    }
}
profile
백엔드 서버 엔지니어

0개의 댓글