알고리즘/백준(BOJ)

백준 - 1931 회의실 배정

시나모온 2020. 7. 29. 17:02

문제 링크입니다 : https://www.acmicpc.net/problem/1931

 

1931번: 회의실배정

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

www.acmicpc.net

 

그리디

 

일찍 끝나는 회의를 먼저 시작하면 다른 회의를 배정할 시간을 더 많이 확보 할 수 있다.

 

 

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool compare(const pair<int, int>& a, const pair<int, int>& b) {
    if(a.second == b.second) return a.first < b.first;
    return a.second < b.second;
}

int main() {
    int N;
    cin >> N;
    vector<pair<int, int>> meeting(N, pair<int, int>());

    for(int i = 0; i < N; i++) {
        cin >> meeting[i].first >> meeting[i].second;
    }

    sort(meeting.begin(), meeting.end(), compare);

    int startTime = 0;
    int cnt = 0;
    for(int i = 0; i < N; i++) {
        if(meeting[i].first < startTime) continue;
        startTime = meeting[i].second;
        cnt++;
    }
    cout << cnt;

    return 0;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~