코딩테스트/Baekjoon

[백준 #2217] 로프 (C++)

동띵 2021. 8. 27. 14:33

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

 

2217번: 로프

N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하

www.acmicpc.net

이 문제는 최대 중량을 구하는 방법을 아는 게 관건인 것 같다.

최대 하중이 제일 작은 밧줄의 값 * 밧줄의 개수를 통해 최대 중량을 찾아야 한다.

 

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

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	int n, ans = 0;
	cin >> n;
	
	vector<int> v(n);
	for (int i = 0; i < n; i++) {
		cin >> v[i];
	}
	sort(v.begin(), v.end());

	for (int i = 0; i < n; i++) {
		ans = max(ans, v[i] * (n - i));
	}

	cout << ans;
	return 0;
}

 

'코딩테스트 > Baekjoon' 카테고리의 다른 글

[백준 #9655] 돌 게임 (C++)  (1) 2021.08.29
[백준 #2193] 이친수 (C++)  (0) 2021.08.28
[백준 #1037] 약수 (C++)  (0) 2021.08.26
[백준 #7662] 이중 우선순위 큐 (C++)  (1) 2021.08.25
[백준 #7568] 덩치 (C++)  (1) 2021.08.24