Algorithm/Problem Solve

[백준 11399번] ATM

아네스 2020. 12. 28. 14:58
반응형

돈을 인출하는데 필요한 시간을 오름차순으로 정렬해서 더한다.

C++ 풀이

#include <bits/stdc++.h>

using namespace std;
vector<int> v;
int ary[1001];
int main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int N;
    cin >> N;
    for(int i = 0 ; i< N; i++){
        int tmp;
        cin >> tmp;
        v.push_back(tmp);
    }
    sort(v.begin(), v.end());
    ary[0] = 0;
    for(int i = 1 ; i<= v.size(); i++)
    {
        ary[i] = v[i-1]+ary[i-1];
    }
    int sum = 0;
    for(int i =1 ; i<= N; i++)
    {
        sum += ary[i];
    }
    cout << sum << '\n';
}

Python 풀이

import sys
input = sys.stdin.readline

N = int(input().rstrip())
time = list(map(int, input().rstrip().split()))
time.sort()

dp = []
dp.append(0)

for i,t in enumerate(time):
    dp.append(dp[i]+t)

print(sum(dp))

 

반응형