Andrew-Yun 2020. 12. 25. 23:41

문제의 조건

  • 맨 뒷 줄의 대기자는 앞 줄의 대기자들의 인출시간을 다 더한 값 + 자기가 걸리는 시간만큼 걸리게 된다.
  • 모든 대기자들의 인출 시간 중 최솟값을 구해야 함

접근

단순하게 풀기

  • 단순하게 더하여 구할 수 있다.

정답코드

더보기
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N;
int GetWaitingTime(vector<int>& v)
{
	int sum = 0;
	for (int i = 0; i < v.size(); i++) {
		for (int j = 0; j < i; j++) {
			sum += v[j];
		}
		sum += v[i];
	}
	return sum;
}
int main()
{
	cin >> N;
	vector<int> v(N, 0);
	for (int i = 0; i < N; i++) {
		cin >> v[i];
	}
	sort(v.begin(), v.end());
	printf("%d\n", GetWaitingTime(v));
	return 0;
}