반응형

 

1. 시간 빠른 순

2. 종료 이벤트 우선

위 두 조건으로 시작 이벤트와 종료 이벤트를 정렬 한 뒤, 사용해야할 강의실의 개수를 계산해주었습니다.

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n, a, b, ans = 1, used = 0;
vector<pair<int, int>> t;
bool compare(pair<int, int>& a, pair<int, int>& b) {
	if (a.first == b.first) return a.second > b.second;
	else return a.first < b.first;
}
int main() {
	scanf("%d", &n);
	for (int i = 0; i < n && scanf("%d %d", &a, &b); i++) {
		t.push_back({ a, 0 });
		t.push_back({ b, 1 });
	}
	sort(t.begin(), t.end(), compare);
	for (int i = 0; i < t.size(); i++) {
		t[i].second ? used-- : used++;
		ans = max(used, ans);
	}
	printf("%d", ans);
}

 

반응형

'Algorithm' 카테고리의 다른 글

백준 8983 : 사냥꾼  (0) 2021.11.14
백준 2512 : 예산  (0) 2021.11.14
백준 3109 : 빵집  (0) 2021.11.14
백준 10996 : 별 찍기 - 21  (0) 2021.11.14
백준 3197 : 백조의 호수  (0) 2021.11.14

+ Recent posts