본문 바로가기

Algorithm/BAEKJOON

[BOJ] 2109번 순회강연 (C++)

728x90
반응형

https://www.acmicpc.net/problem/2109

 

2109번: 순회강연

한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다.

www.acmicpc.net

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	int n;
	cin >> n;
	
	vector<pair<int, int>> v;
	int day[10001] = {0, };
	int maxday = 0;
	for(int i = 0; i < n; i++){
		int p, d;
		cin >> p >> d;
		if(d > maxday) maxday = d;
		v.push_back({p, d});
	}
	sort(v.begin(), v.end(), greater<>());
	
	for(int i = 0; i < n; i++){
		int q = v[i].second;
		while(q > 0){
			if(day[q] == 0){
				day[q] = v[i].first;
				break;
			}
			q--;
		}
	}
	
	int ans = 0;
	for(int i = 1; i <= maxday; i++){
		ans += day[i];
	}
	cout << ans << endl;
	return 0;
}

 

13904번과 같은 원리로 풀었다.

728x90
반응형

'Algorithm > BAEKJOON' 카테고리의 다른 글

[BOJ] 14267번 회사 문화 1 (C++)  (0) 2022.09.06
[BOJ] 13549번 숨바꼭질 3 (C++)  (0) 2022.09.05
[BOJ] 1874번 스택 수열 (C++)  (0) 2022.08.18
[BOJ] 2573번 빙산 (C++)  (0) 2022.08.17
[BOJ] 13904번 과제 (C++)  (0) 2022.08.16