본문 바로가기

Programming/BOJ

[백준/C++] 백준 1931번: 회의실배정

 

pair data type에 sort함수를 적용하면 first를 기준으로 오름차순 sorting한다. 그러므로 끝나는 시간 순으로 정렬하고 싶으면 끝나는 시간을 first에 담으면 된다.

 

#include<iostream>
#include<algorithm>

using namespace std;
int main() {
	int N;//회의의 개수!
	pair<int, int> meeting_time[100000];
	//freopen("Text2.txt", "r", stdin);
	

	cin >> N;

	//first에 끝나는 시간을 넣고 second에 시작하는 시간을 넣는다.
	for (int i = 0; i < N; i++) {
		cin >> meeting_time[i].second >> meeting_time[i].first;
	}

	sort(meeting_time, meeting_time + N); //끝나는 시간이 제일 짧은 순으로 sorting한다.

	//int ans = 0;
	int cnt = 0;
	int load = 0; //이전의 끝시간
	
	for (int i = 0; i < N; i++) {
		if (meeting_time[i].second >= load) {
			load = meeting_time[i].first;
			cnt++;
		}
	}

	cout << cnt;
	return 0;
}