본문 바로가기
백준 알고리즘/그리디 알고리즘

백준 1931번 C++

by paysmile 2019. 2. 18.


#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;


int n;

vector<pair<int, int>> time;


bool cmp(pair<int, int> p1, pair<int, int> p2) {

if (p1.second == p2.second)

return p1.first < p2.first;

return p1.second < p2.second;

}


int calcounts() {

int answer = 1;

int start;

int end = time[0].second;


for (int i = 1; i < time.size(); i++) {

if (time[i].first >= end) {

answer++;

end = time[i].second;

}

}

return answer;

}


int main(void) {

cin >> n;

time.resize(n);


for (int i = 0; i < n; i++) {

int start, end;

cin >> start >> end;

time[i] = make_pair(start, end);

}

sort(time.begin(), time.end(), cmp);

cout << calcounts();

return 0;

}

'백준 알고리즘 > 그리디 알고리즘' 카테고리의 다른 글

로프 C++  (0) 2019.10.10
백준 1120번 C++  (0) 2019.08.28
백준 10610번 C++  (0) 2019.02.18
백준 11047번 C++  (0) 2019.02.18
백준 1764번 C++  (0) 2019.02.18