인행의 ATM 기기의 사용시간을 최소로 구하는 알고리즘
그리디 알고리즘이라 분류하고, 알고리즘은 정렬로 짜고, 결과값을 위해서는 DP를 사용한다.
정렬하고 전 사람이 사용하기까지 걸린 시간에 내 시간을 더한다.
다 합친다.
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int main()
{
int timeTable[1000];
int n;
int sum = 0;
cin >> n;
for (int i = 0; i < n; i++)
scanf("%d", &timeTable[i]);
// Selection Sort
for (int i = 0; i < n; i++)
{
int min = i;
for (int j = i; j < n; j++)
if (timeTable[min] > timeTable[j])
min = j;
swap(timeTable[i], timeTable[min]);
}
for (int i = 1; i < n; i++)
timeTable[i] += timeTable[i-1];
for (int i = 0; i < n; i++)
sum += timeTable[i];
cout << sum;
return 0;
}
2019-01-16 11:00:00에 Tistory에서 작성되었습니다.