[BOJ1931 C++] 회의실 배정

holy_joon·2023년 3월 11일
0

BOJ

목록 보기
10/13

그리디 알고리즘 . . . 쉽지않다
실버 1 짜리 문제 !

사실 근데 sort만 잘해도 . . 금방 푸는 듯

그걸 못해서 문제지만 ㅎ

회의마다 시작 시간, 종료 시간을 주고,
가장 많은 회의를 할 수 있는 방법을 찾는 문제

간단하게, 끝나는 시간을 순서로 sort하고나서

sort 후 가장 처음 있는 회의 (가장 끝나는 시간이 빠른 회의)
를 잡아두고

그다음 것들을 보면서 (종료시간 순으로 sort 되어 있으니 .)

종료 시간 이후에 시작하는 친구들을 납치

이런 비슷한 문제 진짜 많으니 .. 잘 익혀두자

여기서 배운 건, sort를 pair를 가지고 한다는거!

pair의 first를 보고 sort를 하니까 신경 써서 잘 넣어주자

//
// Created by 신성준 on 2023/03/11.

//

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;


int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N;
    cin >> N;


    pair<int, int> arr[1000001];
    for(int i = 0; i < N; i++){
        int start, end;
        cin >> start;
        cin >> end;
        arr[i] = {end, start};
    }
    sort(arr, arr+N);

    int end = arr[0].first;
    int cnt = 1;
    for(int i = 1; i < N; i++){
        if(end <= arr[i].second){
            cnt++;
            end = arr[i].first;
        }
    }
    cout << cnt;
}
profile
Deep Learning Image Processing

0개의 댓글