백준 / 1931 / 회의실 배정 / java

맹민재·2023년 5월 18일
0

Java

목록 보기
13/32
package backjun.I그리디;

import java.util.Arrays;
import java.util.Scanner;
import java.util.Deque;
import java.util.LinkedList;

public class 회의실배정 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int[][] arr = new int[n][2];

        Deque<Integer> q = new LinkedList<>();
        
        for(int i=0;i<n ; i++){
            arr[i][0] = sc.nextInt();
            arr[i][1] = sc.nextInt();
        }
        sc.close();

        Arrays.sort(arr, (o1, o2) -> { return o1[1]!=o2[1] ? o1[1]-o2[1] : o1[0]-o2[0];});
        q.add(arr[0][1]);

        for(int i = 1; i<n; i++){
            if (arr[i][0] >= q.peekLast()) 
                q.addLast(arr[i][1]);
        }

        System.out.println(q.size());

    }
}

그리디 알고리즘으로 해결한 문제
회의실 끝나는 시간으로 정렬한 후 시작 시간으로 다시 정렬 하면 풀 수 있는 문제


아직 람다식을통해 이차원 배열하는 방법이 익숙하지 않아 정렬하는 부분에서 많이 해맸다...

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글