본문 바로가기
IT/BOJ

백준(BOJ) 1931 회의실배정 **

by 빨강자몽 2018. 6. 1.

이 문제는 가장 중요한 점은 종료시점 순으로 정렬해야 한다는점이다.

처음 문제를 풀때는 당연히 시간이 0~23시까지 인줄알고 풀어서 24개의 페어로 구현했다.
....
문제를 잘못읽어서 뻘짓했다...
회의를 종료시점 순으로 정렬해야 했다.

재밌는 문제였다.

#include <iostream>
#include <algorithm>
#include <vector>
#include <string.h>
#include <math.h>
#include <queue>
#include <set>
#include <utility>
#include <functional>
#define MAX 40005
#define MOD 1000000007
#pragma warning(disable:4996)
using namespace std;

int n, mx=0, cur=0;
pair<int, int> p[100005];
int main() 
{
	scanf("%d", &n);
	for (int i = 0; i < n; i++) 
		scanf("%d %d", &p[i].second, &p[i].first);
	// 정렬을 종료시점으로 하기위해서 종료시점을 pair의 first에 넣는다.

	sort(p, p + n);
	// 종료시점 순으로 정렬한다.

	for (int i = 0; i < n; i++)
	{
		if (p[i].second >= cur)
		// 시작지점이 이전 종료시점을 지나쳤을때
		{
			cur = p[i].first;
			mx++;
			// 이전 종료시점을 변경시켜주고 최대값을 증가시켜준다.
		}
	}
	printf("%d", mx);
	return 0;
}


'IT > BOJ' 카테고리의 다른 글

백준(BOJ) 10815 숫자 카드 *  (0) 2018.06.01
백준(BOJ) 7453 합이 0인 네 정수 *  (0) 2018.06.01
백준(BOJ) 1931 로프 *  (0) 2018.06.01
백준(BOJ) 1946 신입사원 *  (0) 2018.06.01
백준(BOJ) 2629 부등호 *  (0) 2018.06.01