백준 - 1931 회의실배정
문제
회의의 시작시간과 끝나는 시간이 주어질 때 최대한 많이 회의를 할 수 있는 수는?
생각
할 수 있는 제일 빨리 끝나는 미팅을 선택하구, 끝나구 다음에도 빨리 끝나느 미팅을 선택..
이러면 제일 많이 미팅을 할 수 있다!!
빨리 끝나면 그 이후 시간 부터 또 다른 회의를 할 수 있게 되니까아~~
끝나는 시간이 빠른 순으로 정렬하구 (pair<끝나는시간,시작시간> 순으로 저장해서 사용)
for 문으로 돌면서 시작 시간이 시작할 수 있는 시간이면 그 회의를 잡는다~~
코드
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
int n, result;
vector<pair<int, int>> meeting;
int main() {
int temp1, temp2, nowTime;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> temp1 >> temp2;
meeting.push_back(make_pair(temp2, temp1));
}
sort(meeting.begin(), meeting.end());
nowTime = 0;
for (int i = 0; i < n;i++) {
if (meeting[i].second >= nowTime) {
result++;
nowTime = meeting[i].first;
}
}
cout << result;
return 0;
}
Author And Source
이 문제에 관하여(백준 - 1931 회의실배정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@weenybeenymini/백준-1931-회의실배정저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)