문제 : https://www.acmicpc.net/problem/2217
로프들이 병렬로 연결되어 무게를 들 때 로프들 중 가장 작은 무게를 들 수 있는 로프가 들 수 있는 무게가 병렬로 연결된 로프들이 각각 들어야 할 무게가 되는 것이 핵심이다.
1. 로프들이 들 수 있는 무게의 정보를 저장할 벡터 rope를 선언하고 문제의 요구에 맞게 입력을 받는다.
2. rope를 sort함수를 사용해 내림차순으로 정렬해준다.
3. 병렬로 연결된 로프들이 들어 올릴 수 있는 최대 무게를 판단하기 위해 0으로 초기화된 int형 변수 max를 선언한다.
4. for문을 순회하며, 만약 병렬로 연결된 로프들이 들어올릴 수 있는 무게가 max보다 크다면,
max를 병렬로 연결된 로프들이 들어올릴 수 있는 무게로 설정한다.
5. for문 순회를 마친 후 결정된 max값을 출력한다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
vector<int> rope ;
int n;
cin >> n;
for(int i=0;i<n;i++){
int w;
cin>>w;
rope.push_back(w);
}
sort(rope.begin(), rope.end(),greater<int>());
int max =0;
for(int i=0 ; i<rope.size();i++){
if(rope[i]*(i+1)>max){
max = rope[i]*(i+1);
}
}
cout << max;
}
'백준 문제풀이(BOJ PS)' 카테고리의 다른 글
[백준(BOJ)] 1302번 베스트셀러 C++ (2) | 2022.07.12 |
---|---|
[백준(BOJ)] 1260번 DFS와 BFS C++ (0) | 2022.07.05 |
[백준(BOJ)] 2606번 바이러스 C++ (0) | 2022.07.05 |
[백준(BOJ)] 2839번 설탕배달 C++ (그리디 알고리즘) (0) | 2022.07.04 |
[백준(BOJ)] 5585번 거스름돈 C++ (0) | 2022.07.04 |