알고리즘

백준 11399: ATM [C++]

avocado8 2024. 7. 16. 20:41

https://www.acmicpc.net/problem/11399

 

최소 시간(전체)이 되도록 순서를 정하라는데

전체 기다리는 시간이 줄어들려면 그냥 빨리끝나는 사람부터 뽑으면 된다.

매 상황마다 가장 빨리 끝날 수 있는 사람을 뽑아나가면 그게 곧 최소시간이 된다.

= 그리디를 써라

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<int> arr(n);
    for(int i=0;i<n;i++){
        cin >> arr[i];
    }
    
    sort(arr.begin(), arr.end());
    int answer = 0;
    for(int i=0;i<n;i++){
        for(int j=0;j<=i;j++){
            answer += arr[j];
        }
    }
    
    cout << answer;

    return 0;
}

'알고리즘' 카테고리의 다른 글

백준 10026: 적록색약[C++]  (0) 2024.07.18
백준 7662: 이중 우선순위 큐 [C++]  (0) 2024.07.17
백준 11279: 최대 힙 [C++]  (0) 2024.07.15
백준 1927: 최소 힙 [C++]  (0) 2024.07.14
백준 1541: 잃어버린 괄호 [C++]  (1) 2024.07.13