[210721][백준/BOJ] 1931번 회의실 배정

KeonWoo Kim·2021년 7월 20일
0

알고리즘

목록 보기
84/84

문제

입출력

풀이

주어진 회의를 시작하는 시간과 끝나는 시간으로 최대 진행 가능한 회의 갯수를 구하는 문제이다.
한 회의가 끝나고 바로 다음 회의를 시작할 수 있다.

회의가 끝나는 시간으로 오름차순 정렬을 한 다음에 남은 회의 시간 중 가장 먼저 시작하는 회의시간을 찾고 이 회의에 해당하는 끝나는 시간 값으로 다음 시작 회의를 찾는 과정을 반복하면 된다.

회의 순서 (1,4) -> (5,7) -> (8,11) -> (12,14)

코드

#include <bits/stdc++.h>
using namespace std;

pair<int, int> p[100002];
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	int n, min, ans = 0;
	cin >> n;
	
	for (int i = 0; i < n; ++i)
		cin >> p[i].second >> p[i].first;
	
	sort(p, p + n);

	min = p[0].first;
	for (int i = 1; i < n; ++i)
	{
		if (min <= p[i].second)
		{
			min = p[i].first;
			ans++;
		}
	}
	cout << ans + 1;
}
profile
안녕하세요

0개의 댓글

관련 채용 정보