Dolphins의 HelloWorld
[백준]Baekjoon1931(Greedy Algorithm) 본문
문제링크 : https://www.acmicpc.net/problem/1931
이 문제에 대해 고민을 하다 보면 결국 사용할 수 있는 최대의 회의 수를 출력하기 위해서
회의를 마치는 시간이 중요하다는 것을 알게된다.
회의가 마치는 순서를 오름차순으로 정렬한 후 그 회의가 시작한 시간이 그 전 회의가 끝난
시간과 겹치지 않도록 하면 최대한의 회의 숫자를 구할 수 있다.
#include <iostream> #include <vector> #include <algorithm> using namespace std; typedef struct { long long start; long long end; }time; bool cmp(time t1, time t2) { if (t1.end < t2.end) return true; else if (t1.end == t2.end) return t1.start < t2.start; else return false; } int main() { int N; scanf("%d", &N); vector<time> v; time t; for (int i = 1; i <= N; i++) { scanf("%lld %lld", &t.start, &t.end); v.push_back(t); } sort(v.begin(), v.end(), cmp); int count = 1; long long x = v[0].end; for (int i = 1; i < v.size(); i++) { if (v[i].start>=x) { count++; x = v[i].end; } } printf("%d\n", count); }
'Algorithm > baekjoon문제풀이' 카테고리의 다른 글
[백준]Baekjoon1541(Greedy Algorithm) (0) | 2018.08.28 |
---|---|
[백준]Baekjoon11399(Greedy Algorithm) (0) | 2018.08.28 |
[백준]Baekjoon11047(Greedy Algorithm) (0) | 2018.08.28 |
[백준]Baekjoon1967 (트리의 지름) (0) | 2018.08.22 |
[백준]Baekjoon11725 (트리의 부모 찾기) (0) | 2018.08.22 |
Comments