GitHubSeob

C++ / 백준 / 2217 / 로프 본문

Baekjoon/Silver

C++ / 백준 / 2217 / 로프

GitHubSeob 2023. 7. 4.
문제

 

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

 

2217번: 로프

N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하

www.acmicpc.net

문제풀이

 

최대 중량이 낮은 로프의 중량 * 로프의 개수가 N개의 로프로 들 수 있는 최대 중량이다.

내림차순으로 정렬하게 되면 반복문을 실행할 때 해당 로프가 항상 최소 중량이므로 추가로 조건을 걸 필요가 없다.

따라서 반복하면서 answer는 answer, 현재 로프 중량 * 로프 개수 둘 중 큰 값으로 저장하면 된다.

 

코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	int N(0), idx(0), answer(0);

	cin >> N;
	vector<int>rope(N, 0);

	for (idx = 0; idx < N; ++idx) {
		cin >> rope[idx];
	}

	sort(rope.begin(), rope.end(), greater<int>());

	for (idx = 0; idx < N; ++idx) {
		answer = max(answer, rope[idx] * (idx + 1));
	}
	cout << answer;
}

 

'Baekjoon > Silver' 카테고리의 다른 글

C++ / 백준 / 1758 / 알바생 강호  (0) 2023.07.04
C++ / 백준 / 13305 / 주유소  (0) 2023.07.04
C++ / 백준 / 1343 / 폴리오미노  (0) 2023.07.04
C++ / 백준 / 14916 / 거스름돈  (0) 2023.07.04
C++ / 백준 / 2529 / 부등호  (0) 2023.06.11