반응형
쉬운 문제이니 그림을 참고해서 한번 생각해보자
위와 같이 예제가 주어졌다고 가정하자.
2초에 들어와서 1초동안
8초에 들어와서 3초동안
5초에 들어와서 7초동안
"정렬 시켜준다."
2초에 들어와서 1초동안
5초에 들어와서 7초동안
8초에 들어와서 3초동안
여기서 time이라는 변수를 만들어줘서
time 은 "시작시간 + 검문시간" 을 저장해주는데
이때 중요한점은 "시작시간 + 검문시간" 이 다음 소가 들어오는 시간과 겹칠 수 가 있다.
그렇기 때문에 time이 겹칠 경우 계속해서 누적해주면서 time값을 갱신해준다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n; cin >> n;
vector <pair<int, int>>v;
for (int i = 0; i < n; i++) {
int a, b; cin >> a >> b;
v.push_back({ a,b });
}
sort(v.begin(), v.end());
int time = 0;
for (int i = 0; i < n; i++) {
time = max(v[i].first, time);
time += v[i].second;
}
cout << time;
}
반응형
'백준 > 구현' 카테고리의 다른 글
[백준 4375 / C++] 1 (0) | 2022.01.19 |
---|---|
[백준 9375번 / C++] 패션왕 (0) | 2022.01.18 |
[백준 9935번 / C++] 문자열 폭발 (0) | 2022.01.17 |
[백준 2979번 / C++] 트럭 주차 (0) | 2022.01.17 |
[백준 10808번 / C++] 알파벳 개수 (0) | 2022.01.17 |
댓글