문제 : https://www.acmicpc.net/problem/2217
2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
로프들이 병렬로 연결되어 무게를 들 때 로프들 중 가장 작은 무게를 들 수 있는 로프가 들 수 있는 무게가 병렬로 연결된 로프들이 각각 들어야 할 무게가 되는 것이 핵심이다.
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;
}
GitHub - farmJun/Algorithm_BOJ_PS: 백준 알고리즘 문제풀이 기록 레포짓입니다.
백준 알고리즘 문제풀이 기록 레포짓입니다. Contribute to farmJun/Algorithm_BOJ_PS development by creating an account on GitHub.
github.com
'백준 문제풀이(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 |