[2217] 로프
https://www.acmicpc.net/problem/2217
한줄 후기 : 작년에 푼건데 지금 그리디 더 못하는듯
문제 이해가 약간 어려웠음 ^^
친절한 하얀이가 설명해줌. 10, 15kg 를 들 수 있는 로프가 있으면 두 로프를 모두 사용하기 위해서는 10kg 에 맞춰 총 20kg 만 들 수 있는 것
15kg 만 사용하면 로프 1개만 사용해서 15kg 만 사용하는 것이다. 이런 식으로 최대 들 수 있는 무게를 찾으면 되는 문제
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool desc(int a, int b){
return a>b;
}
int main(){
int n, max2=0, temp;
int v[100000];
scanf("%d", &n);
for(int i=0; i<n; i++){
scanf("%d", &v[i]);
}
sort(v, v+n, desc);
for(int i=0; i<n; i++){
temp = (i+1)*v[i];
max2 = max(max2, temp);
}
cout << max2;
}
풀이 ) 그냥 받아서 내림차순 sort 한 후 그 로프보다 중량이 작은 로프들 개수로 곱해준 후 max 값을 찾으면 되는 문제
'DEV > PS' 카테고리의 다른 글
[1946] 신입 사원, c++ (0) | 2021.02.06 |
---|---|
[1040] 기타줄, c++ (0) | 2021.02.06 |
[1018] 체스판 다시 칠하기, c++ (0) | 2021.02.06 |
[2512] 예산, c++ (0) | 2021.02.06 |
[2110] 공유기 설치, c++ (0) | 2021.02.06 |