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 |