쾌락없는 책임 (공부)/알고리즘 문제풀이

백준 2437 저울 - C++ 그리디 알고리즘

허스크 2021. 4. 2. 20:45
반응형

- 2437 : www.acmicpc.net/problem/2437

#include <iostream>
#include <algorithm>
using namespace std;
int arr[1001];
int main(){
    int n;
    cin >> n;
    for(int i = 0; i < n; i++){
        cin >> arr[i];
    }
    sort(arr, arr+n);
    int w = 1;      //왼쪽 물건 변수
    for(int i = 0; i < n; i++){
        if(arr[i] > w){
            break;
        }
        w += arr[i];
    }
    cout << w << "\n";
}

 위 문제의 경우 정렬만 되어 있다면 for문을 이용한 그리디 알고리즘이 가능합니다.

 algorithm헤더의 sort를 사용해서 배열(또는 벡터)를 정렬해준 뒤  앞에서부터 더하면서 측정 무게를 고르면 된다

반응형