300x250
1. 제목
- 백준 2217 로프
- BOJ 2217 로프
문제 링크 : 2217번: 로프 (acmicpc.net)
2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
2. 풀이 과정
1. 로프 내림차순으로 정렬
2. 가장 튼튼한 로프부터 추가하며 최대 중량 계산
3. 최대 중량 = max(로프 수 * 고른 로프 중 가장 약한 로프 중량, 최대 중량).
3. 코드
// 1. 로프 내림차순으로 정렬
// 2. 가장 튼튼한 로프부터 추가하며 최대 중량 계산
// 3. 최대 중량 = max(로프 수 * 고른 로프 중 가장 약한 로프 중량, 최대 중량)
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool Compare(int num1, int num2)
{
if (num1 > num2)
return true;
return false;
}
int main()
{
int N;
cin >> N;
vector<int> v(N);
for (int index = 0; index < N; index++)
cin >> v[index];
// 1. 로프 내림차순으로 정렬
sort(v.begin(), v.end(), Compare);
int maxWeight = 0;
// 2. 가장 튼튼한 로프부터 추가하며 최대 중량 계산
for (int index = 0; index < N; index++)
{
// 3. 최대 중량 = max(로프 수 * 고른 로프 중 가장 약한 로프 중량, 최대 중량)
maxWeight = max(maxWeight, v[index] * (index+1));
}
cout << maxWeight << endl;
return 0;
}
300x250
'<C++ 백준 BOJ> > 그리디' 카테고리의 다른 글
[백준 BOJ1789] 수들의 합 (C++) (0) | 2023.07.02 |
---|---|
[백준 BOJ1026] 보물 (C++) (0) | 2023.07.02 |
[백준 BOJ1931] 회의실 배정 (C++) (0) | 2022.10.10 |
[백준 BOJ11399] ATM (C++) (0) | 2022.10.10 |
[백준 BOJ2839] 설탕배달 (C++) (0) | 2022.10.10 |