#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