[백준 2217] 로프
카테고리: BOJ
난이도
실버 IV
📜문제
🔎접근
구해야 하는 것이 최대로 버틸 수 있는 무게이므로 무게를 구하는 공식부터 생각을 해본다음 어떤 규칙으로 나타내지는지 파악한다.
🌞풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> v;
int main()
{
int N = 0;
cin >> N;
int loop = 0;
for (int i = 0; i < N; i++)
{
cin >> loop;
v.push_back(loop);
}
sort(v.rbegin(), v.rend()); // 내림차순 정렬
int weight = 0;
for (int i = 0; i < N; i++)
{
weight = v[i] * (i + 1); // 버틸 수 있는 무게 계산
v[i] = weight;
}
sort(v.rbegin(), v.rend()); // 내림차순 정렬
cout << v[0] << "\n";
return 0;
}
A : 사용한 로프가 버틸 수 있는 최대 중량의 최소값
K : 사용한 로프의 개수
W : 실제 버틸 수 있는 최대 중량
사용한 로프가 버틸 수 있는 최대 중량 최소값
=실제 버틸 수 있는 최대 중량
/사용한 로프의 개수
이다.
간단하게 나타내면 A = W/K 이다.
그러므로 W = A * K
정답은 사용한 로프의 최소값
* 사용한 로프의 개수
를 구하면 된다.
댓글남기기