본문 바로가기
백준

백준 11000 강의실 배정

by 콩순이냉장고 2021. 10. 30.

문제 URL : https://www.acmicpc.net/problem/11000

 

11000번: 강의실 배정

첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109)

www.acmicpc.net

 

문제 접근법 : 정렬 + pq사용 문제입니다.

시작시간순 그다음 끝나는순으로 정렬합니다.

 

그리고 끝나는 시간을 기준으로 pq에넣어 입력값이 pq보다 작거나 같으면 pop을 진행합니다. 

그러면 pq안에 있는 사이즈가 곧 사용한 강의실의 개수가 최소가 되는경우입니다.

 

소스코드 : 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//By 
#include <bits/stdc++.h>
using namespace std;
vector<pair<intint>> v;
int n;
void input() {
    int a, b;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a >> b;
        v.push_back({ a,b });
    }
}
void solve() {
    sort(v.begin(), v.end());
    priority_queue<intvector<int>, greater<int>> pq;
    pq.push({ v[0].second });
    int ans = 1;
    for (int i = 1; i < n; i++) {
        while (!pq.empty() && pq.top() <= v[i].first)
            pq.pop();
        pq.push(v[i].second);
        ans = max(ans, (int)pq.size());
    }
 
    cout << ans << "\n";
}
 
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin.tie(0);
    input();
    solve();
}
 
 
cs

 

궁금한점 혹은 모르는점 어떤 질문이든 댓글은 언제나 환영입니다. 

 

'백준' 카테고리의 다른 글

백준 15644 구슬 탈출3  (0) 2021.11.02
백준 2696 중앙값 구하기  (0) 2021.10.30
백준 1715 카드 정렬하기  (0) 2021.10.30
백준 8972 미친 아두이노  (1) 2021.10.24
백준 1113 수영장 만들기  (0) 2021.10.17