백준 문제풀이(BOJ PS)

[백준(BOJ)] 2217번 로프 C++

팜준 2022. 7. 4. 22:51

문제 : 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;

}

 

 

https://github.com/farmJun/Algorithm_BOJ_PS/blob/main/%EA%B7%B8%EB%A6%AC%EB%94%94%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/2217.cpp

 

GitHub - farmJun/Algorithm_BOJ_PS: 백준 알고리즘 문제풀이 기록 레포짓입니다.

백준 알고리즘 문제풀이 기록 레포짓입니다. Contribute to farmJun/Algorithm_BOJ_PS development by creating an account on GitHub.

github.com