본문 바로가기
개발 관련 공부/알고리즘

백준 11651

by 슴새 2021. 7. 29.
반응형

import java.util.Scanner;
import java.util.Arrays;
public class Main{
    static public void main(String args[]){
    	Scanner sc = new Scanner(System.in);
    	int n = sc.nextInt();
        int arr [][]= new int [n][2];
        for(int i=0;i<n;i++){
            arr[i][0]=sc.nextInt();
            arr[i][1]=sc.nextInt();
        }
        //e1,e2 배열의 인덱스가 [0]이면 xi, [1]이면 yi이다. 
        Arrays.sort(arr,(e1, e2) -> {
            if(e1[1]==e2[1]){
                return e1[0]-e2[0]; //e1에서 e2를 빼야 함
            }else
                return e1[1]-e2[1];
        }       
        );
        StringBuilder sb=new StringBuilder();
        for(int i=0;i<n;i++){
            sb.append(arr[i][0]+" "+arr[i][1]+"\n");
        }
        System.out.println(sb);
	}
     
 }

Arrays.sort를 람다식을 이용해 호출할 수 있다.

e1,e2는 일반적인 배열이라고 생각하면 헷갈리고, 비교해야 할 두 수라고 보는게 더 이해하기 편한 것 같다. 반환하는 값은 0,음의 정수,양의정수 중 하나인데, 양의 정수일때만 두 객체의 위치를 바꿔준다.

반응형

'개발 관련 공부 > 알고리즘' 카테고리의 다른 글

백준 10989  (0) 2021.08.02
백준 10814  (0) 2021.07.30
백준 2751  (0) 2021.07.28
백준 1912  (0) 2021.07.26
백준 11054  (0) 2021.07.22

댓글