[C++] 백준 14469번: 소가 길을 건너간 이유 3
문제
난이도 : 실버 4
백준 14469번 : 소가 길을 건너간 이유 3
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <bits/stdc++.h>
using namespace std;
int N;
vector<pair<int, int>> v;
priority_queue<int, vector<int>> pq;
int answer;
int main()
{
cin >> N;
for (int i = 0; i < N; i++)
{
int a, b;
cin >> a >> b;
v.push_back({ a, b });
}
sort(v.begin(), v.end());
for (int i = 0; i < N; i++)
{
if (answer < v[i].first) answer = v[i].first;
answer += v[i].second;
}
cout << answer;
return 0;
}
풀이
그리디 문제
데이터를 입력받고 도착 순서대로 오름차순 정렬한다
answer 변수는 현재까지 소들이 농장에 입장하는 시간의 최솟값임
만약 현재까지 소들이 입장하는 시간이 다음 소의 도착시간보다 작다면? 다음 소의 도착시간까지 기다려야 하므로 answer을 그 도착시간으로 갱신해준다
그리고 그 소의 검문시간을 더해주면 끝
결과
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.