https://www.acmicpc.net/problem/1931
위 알고리즘은 그리디 알고리즘의 기본이다.
자세한 설명은
https://www.zerocho.com/category/Algorithm/post/584ba5c9580277001862f188
에 더 잘 나와있다.
#include <cstdio>#include <utility>#include <vector>#include <algorithm>using namespace std;int main(){int n, start, end;vector<pair<int ,int>> v;scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d %d", &start, &end);v.push_back(make_pair(end, start));}sort(v.begin(), v.end());int result = 1;int endTime = v[0].first;for (int i = 1; i < n; ++i) {if (endTime <= v[i].second) {result++;endTime = v[i].first;}}printf("%d", result);return 0;}
'알고리즘 풀이' 카테고리의 다른 글
백준 2455번 지능형 기차 (0) | 2018.06.05 |
---|---|
백준 15685번 드래곤 커브 (0) | 2018.06.04 |
백준 9012번 괄호 (0) | 2018.05.05 |
백준 2805번 나무자르기 (0) | 2018.04.17 |
백준 2512번 예산 (0) | 2018.04.16 |