#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
pair<int, int> *p = new pair<int, int> [n];
for (int i = 0; i < n; ++i)
cin >> p[i].second >> p[i].first;
sort(p, p + n);
int cnt = 1;
int lastTime = p[0].first;
for (int i = 1; i < n; ++i) {
if (lastTime <= p[i].second) {
lastTime = p[i].first;
++cnt;
}
}
cout << cnt;
delete[] p;
return 0;
}
sort함수를 써서 회의를 정렬할 때, 계속 회의 시작 시간 기준으로 정렬했었다...
이중 포문에 재귀까지 사용했다가 n의 값이 100000개라 시간 초과가 떠 계속 실패했던 문제
회의가 끝나는 시간을 기준으로 sort한 후 for문을 한 번만 돌리면 풀 수 있었던 문제
https://www.acmicpc.net/problem/1931
1931번: 회의실 배정
(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.
www.acmicpc.net
'알고리즘 공부' 카테고리의 다른 글
백준 2606번 바이러스 (0) | 2023.03.07 |
---|---|
백준 1260번 DFS와 BFS (0) | 2023.03.07 |
백준 1541번 일어버린 괄호 (0) | 2023.03.06 |
백준 1026번 보물 (0) | 2023.03.03 |
백준 11399번 ATM (0) | 2023.03.02 |