https://www.acmicpc.net/problem/1931
...알고리즘 같이하는 친구가 준 지혜로 드디어 풀었다..
- 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾자
- 회의는 한번 시작하면 중간에 중단 x
- 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있음
- 회의의 시작시간과 끝나는 시간이 같을수도 있다.
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>
bool cmp(pii a, pii b)
{
if (a.second == b.second)
{
return a.first < b.first;
}
return a.second < b.second;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int n;
cin >> n;
vector<pii> v;
// 입력
while (n--)
{
int s, e;
cin >> s >> e;
v.push_back({s, e});
}
// solve - greedy
int cnt = 0;
int lastTime = -1;
// sort
sort(v.begin(), v.end(), cmp);
// 회의를 탐색해본다.
for (auto &meeting : v)
{
int startTime = meeting.first;
if (lastTime <= startTime)
{
cnt++;
lastTime = meeting.second;
}
}
cout << cnt;
}
728x90
'백준이당' 카테고리의 다른 글
[C++] 백준 1515번 : 수 이어쓰기 (0) | 2025.03.30 |
---|---|
[C++] 백준 18111번 : 마인크래프트 (0) | 2025.03.29 |
[C++] 백준 1541번 : 잃어버린 괄호 (0) | 2025.03.25 |
[C++] 백준 1072번 : 게임 (0) | 2025.03.25 |
[C++] 백준 14916번 : 거스름돈 (0) | 2025.03.21 |