본문 바로가기

Programming/Algorithm

[C++] 백준 11399번 : ATM


#include <stdio.h>
#include <limits.h>

int getMin(int[], int); //n개의 배열중 최소값을 반환
void swap(int&, int&); //두개의 정수값을 스왑
int main() {
	int A[1000] = {};
	int n;
	
	scanf("%d", &n);
	for (int i = 0; i < n; i++) scanf("%d", &A[i]);	//학생 수와 인출소요 시간 입력

	int sum = 0;
	int sumHour = 0;
	for (int i = n - 1; i >= 0; i--) {
		sum += getMin(A, i);
		sumHour += sum;
	}
	printf("%d", sumHour);
}
int getMin(int a[], int n) {
	int min = 0;
	for (int i = 1; i <= n; i++)
		if (a[i] < a[min])	min = i;
	
	swap(a[min], a[n]);
	return a[n];
}
void swap(int& a, int& b){
	int tmp;
	tmp = a;
	a = b;
	b = tmp;
}