

풀이과정
배열에 입력받은 회의의 수를 끝나는 시간 기준으로 오름차순 정렬을 한다.
정렬된 배열에서 시작시간이 CurrTime보다 큰 경우 해당 인덱스의 회의가 끝나는 시간을 CurrTime으로 변경하고
이후 회의 시작시간과 끝나는 시간이 같은 경우를 체크하기 위해 끝나는 시간이 같은 경우들의 시작 시간을 오름차순으로 정렬해줘야한다.
진행 과정 설명


코드
더보기
#include <iostream>
using namespace std;
bool cmp1(pair<int,int>* a, pair<int, int>* b) { return a->second < b->second; }
bool cmp2(pair<int, int>* a, pair<int, int>* b) { return a->first < b->first; }
int main()
{
int N = 0;
int iCurrTime = 0;
pair<int, int>* pValue[100000] ;
int iResult = 0;
cin >> N;
for (int i = 0; i < N; ++i)
{
pValue[i] = new pair<int, int>;
cin >> pValue[i]->first >> pValue[i]->second;
}
sort(pValue, pValue+N, cmp1);
for (int i = 0; i < N; ++i)
{
if (iCurrTime <= pValue[i]->first)
{
int j = i + 1;
while ((j < N) && (pValue[i]->second == pValue[j]->second))
{
j++;
}
sort(pValue + i, pValue + j, cmp2);
iCurrTime = pValue[i]->second;
iResult++;
}
}
cout << iResult << endl;
return 0;
}
'알고리즘(C++) > 백준 알고리즘' 카테고리의 다른 글
| [백준] C++ 10773번 : 제로 (0) | 2019.12.09 |
|---|---|
| [백준] C++ 2748번 : 피보나치 수 2 (0) | 2019.12.09 |
| [백준] C++ 11047번 : 동전 0 (0) | 2019.12.03 |
| [백준] C++ 11399번 : ATM (0) | 2019.12.03 |
| [백준] C++ 4936번 : 섬의 개수 (0) | 2019.11.20 |