No Rules Rules

회의실 배정 (feat. 백준, 1931번) 본문

생활/코테

회의실 배정 (feat. 백준, 1931번)

개발하는 완두콩 2022. 8. 8. 20:35
728x90
반응형

회의실 배정
https://www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

 

반응형

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(const pair<int, int>& v1, const pair<int, int>& v2) {
	if (v1.second == v2.second)
		return v1.first < v2.first;
	return v1.second < v2.second;
}
int main() {
	register int N, tmp, answer = 1;
	vector<pair<int, int>> arr;
	cin >> N;
	for (register int i = 0, x, y; i < N; ++i)
		cin >> x >> y, arr.push_back(make_pair(x, y));
	sort(arr.begin(), arr.end(), cmp);
	tmp = arr[0].second;
	for (register int i = 1; i < N; ++i) {
		if (tmp <= arr[i].first) {
			++answer;
			tmp = arr[i].second;
		}
	}
	cout << answer;
	return 0;
}
// *&)*@*
  1. 정렬만 잘하면 되는 문제입니다.
  2. 종료 시간을 기준으로 sort를 취하고, 만약 종료 시간이 같다면 시작 시간으로 sort를 취하는 cmp를 정의합니다.
  3. 이후 최초 0번째 시작-종료 시간 중 second를 기준으로 1번째부터 이전의 종료 시간과 시작 시간을 비교한 뒤, 만약 조건 (<=) 이 된다면 회의를 증가시켜주고 (++answer) 마지막 종료 시간을 갱신시켜줍니다.
  4. 이후 2번째의 시작시간에 대해서 다시 반복해서 비교합니다.
728x90
반응형

'생활 > 코테' 카테고리의 다른 글

잃어버린 괄호 (feat. 백준, 1541번)  (0) 2022.08.08
ATM (feat. 백준, 11399번)  (0) 2022.08.08
커트라인 (feat. 백준, 25305번)  (0) 2022.08.08
동전 0 (feat. 백준, 11047번)  (0) 2022.08.08
나머지 합 (feat. 백준, 10986번)  (0) 2022.08.08
Comments