https://www.acmicpc.net/problem/14469
이 문제도 글이 길어서 그렇지 결론은 쉽다.
sort 밑에 있는 for문만 생각할 수 있다면 금방 풀 수 있다.
다음 요소의 도착시간과 이전에 입장완료한 시간을 비교만 해준다면 간단하게 풀 수 있다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
//농장 방문을 위한 문은 1개밖에 없다.
//줄을 서서 들어가야한다 like 공항 줄
//n마리의 소가 들어가려고 한다. - 방문에 필요한 시간은 소마다 다르다.
//예를 들어, 한 소가 5초에 도착했고 7초 동안 검문을 받으면, 8초에 도착한 그 다음 소는 12초까지 줄을 서야 검문을 받을 수 있다.
int n; //소의 수
vector<pair<int, int>> v; //int - 오는 시간, int 걸리는 시간.
int result=0;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n; //100이하로 들어온다.
int a, b;
for (int i = 0; i < n; i++) {
cin >> a >> b;
v.push_back({ a, b });
}
sort(v.begin(), v.end());
for (auto i : v) {
if (result == 0) { //처음이라면
result = i.first + i.second;
continue;
}
if (i.first > result) {
result = i.first + i.second;
}
else {
result += i.second;
}
}
cout << result;
}
'백준 문제 풀이 & C++ 공부' 카테고리의 다른 글
백준 14889 C++ (1) | 2024.07.10 |
---|---|
백준 1931 C++ (0) | 2024.07.01 |
백준 1781 C++ (0) | 2024.06.27 |
백준 2109 C++ (0) | 2024.06.23 |
백준 2170 C++ (0) | 2024.06.22 |