Algorithm/C++ - BOJ

BAEKJOON - 1931 회의실 배정 C++

ㅇㅇ잉 2021. 1. 20. 19:40

끝나는 시간을 기준으로 오름차순 정렬, 같으면 시작하는 시간 기준 오름차순 정렬.

 

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

vector <pair<int, int>> v;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);
	cout.tie(NULL);

	int N;
	cin >> N;

	for (int i = 0; i < N; i++) {
		int n1, n2;
		cin >> n1 >> n2;
		v.push_back({ n2,n1 });	//끝나는 시간을 기준으로 정렬하기 위해 이렇게 받음
	}

	sort(v.begin(), v.end()); //시작시간과 끝나는 시간을 끝나는 시간대로 정렬한 후
							 //끝나는 순서 >= 시작한 순서로 조건문 돌리면서 rseult++

	int result = 0, time = 0;
	for (int i = 0; i < N; i++) {
		if (time <= v[i].second) {
			time = v[i].first;
			result++;
		}
	}

	cout << result;

	return 0;
}