[백준 2217] 로프

Date:     Updated:

카테고리:

태그:

난이도

실버 IV

📜문제

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

image

🔎접근

구해야 하는 것이 최대로 버틸 수 있는 무게이므로 무게를 구하는 공식부터 생각을 해본다음 어떤 규칙으로 나타내지는지 파악한다.

🌞풀이

#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

정답은 사용한 로프의 최소값 * 사용한 로프의 개수를 구하면 된다.

맨 위로 이동하기

BOJ 카테고리 내 다른 글 보러가기

댓글남기기