본문 바로가기
백준 문제 풀이 & C++ 공부

백준 14469 C++

by daisy0461 2024. 6. 30.

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
백준 1202 C++  (0) 2024.06.21