알고리즘 문제풀이/백준
[백준 11399] ATM
홍시홍
2020. 3. 10. 01:30
https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
요구사항
최소 대기 시간 구하기
풀이
대기 시간은 배열의 앞 쪽부터 누적해서 더해진다.
작은 수가 앞 쪽에 배치하여 합을 구하면 최소가 된다.
대기 시간이 긴 순서를 조금만 사용하는 것
오름차순 정렬 후, 조건대로 더해준다
#include <iostream>
#include <algorithm>
using namespace std;
int n;
int map[1010];
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &map[i]);
sort(map, map + n);
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
ans += map[j];
}
}
cout << ans << endl;
}