본문 바로가기

PS

[BOJ]1931번 : 회의실 배정

https://www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

분류 : 그리디 알고리즘

더보기
import java.io.*;
import java.math.*;
import java.util.*;

public class Main {

    static Myscanner sc = new Myscanner();
    static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));

    public static void main(String[] args) throws IOException {

        int TC = sc.nextInt();
        ArrayList<Time> al = new ArrayList<Time>();

        while (TC-- > 0) {
            int S = sc.nextInt();
            int E = sc.nextInt();
            al.add(new Time(S, E));
        }
        Collections.sort(al);
        
        int count = 0;
        int start = -1;
        for (int j = 0; j < al.size(); j++) {
            if (al.get(j).S >= start) {
                start = al.get(j).E;
                count++;
            }
        }

        out.println(count);
        out.flush();
    }
}

class Time implements Comparable<Time> {
    int S, E;

    Time(int S, int E) {
        this.S = S;
        this.E = E;
    }

    @Override
    public int compareTo(Time o) {
        if (this.E < o.E) {
            return -1;
        } else if (this.E > o.E) {
            return 1;
        }
        return this.S <= o.S ? -1 : 1;
    }

}

class Myscanner {
    BufferedReader br;
    StringTokenizer st;

    Myscanner() {
        br = new BufferedReader(new InputStreamReader(System.in));
    }

    String next() {
        while (st == null || !st.hasMoreElements()) {
            try {
                st = new StringTokenizer(br.readLine());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return st.nextToken();
    }

    int nextInt() {
        return Integer.parseInt(next());
    }

    long nextLong() {
        return Long.parseLong(next());
    }

    double nextDouble() {
        return Double.parseDouble(next());
    }
}

끝나는 시간 대로 정렬을 한 후에 회의가 끝나는 시간이 같을 경우 

시작 시간을 빠른순으로 정렬 후에 주어진 모든 회의를 확인하며 회의 수를 증가 시킨다.

'PS' 카테고리의 다른 글

[BOJ]1620번: 나는야 포켓몬 마스터 이다솜  (0) 2017.04.19
[BOJ]1874번 : 스택 수열  (0) 2017.04.17
[BOJ]1600번 : 말이 되고픈 원숭이  (0) 2017.04.14
[BOJ]9373번 : 복도 뚫기  (0) 2017.04.06
[BOJ1005번 : ACM Craft  (0) 2017.04.04