반응형
최대한 많은 회의를 겹치는 시간 없이 하고자 합니다.
이 경우에는 빨리 끝나는 회의를 우선 배정하면 다음에 배정할 수 있는 회의가 많아질 수 있습니다.
선택의 폭을 넓히기 위해서는 회의가 끝나는 시간순으로 정렬합니다. 그런 후에 현재 끝난 회의의 시간을 기록하고, 시작시간이 그 시간보다 앞이라면 해당 회의는 할 수 없습니다.
제가 작성한 소스입니다. 소스는 참고용으로 봐주세요.
//------------------------------------------
// baekjoon #1931
// - by Aubrey Choi
// - created at 2019-09-07
//------------------------------------------
#include <stdio.h>
#include <algorithm>
struct Lesson { int s, e; };
bool cmp(const Lesson &a, const Lesson &b) { return a.e==b.e?a.s<b.s:a.e<b.e; }
int main()
{
int n, t=0, ans=0;
Lesson v[100000];
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d%d", &v[i].s, &v[i].e);
std::sort(v, v+n, cmp);
for(int i=0;i<n;i++)
{
if(v[i].s < t) continue;
t=v[i].e; ans++;
}
printf("%d\n", ans);
return 0;
}
728x90
'Programming > BOJ' 카테고리의 다른 글
[C/C++] 백준 #1935 후위 표기식2(스택) (0) | 2022.11.16 |
---|---|
[C/C++] 백준 #1932 정수 삼각형(동적 계획법) (0) | 2022.11.14 |
[C/C++] 백준 #1929 소수 구하기(에라토스테네스의 체) (0) | 2022.11.11 |
[C/C++] 백준 #1922 네트워크 연결(크루스칼) (0) | 2022.11.09 |
[C/C++] 백준 #1920 수 찾기(이진 탐색) (0) | 2022.11.08 |
댓글