GitHubSeob
C++ / 백준 / 2217 / 로프 본문
문제 |
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 |