본문 바로가기

알고리즘(C++)/백준 알고리즘

[백준] C++ 11399번 : ATM

풀이과정


N번째 사람이 인출하는데 걸리는 시간 = N-1번까지 기다린 시간 + N번째를 인출하는데 걸리는 시간

 

인출하는데 걸리는 시간이 적은 순서대로 인출하면 최소값을 구할 수 있다.

 

 

 

 

코드


더보기
 #include <iostream>
using namespace std;

int iNum = 0;

int NeedTime(int* p, int added)
{
	int min = 0;

	for (int i = 0; i < iNum; ++i)
	{
		if (p[min] > p[i] && p[i] != 2000)
			min = i;
	}
	if (p[min] == 2000) return 0;

	int tmp = min;
	min = p[min];
	p[tmp] = 2000;

	return min + added + NeedTime(p, added + min);
}

int main()
{
	int* pValue;
	int iAdded = 0;
	cin >> iNum;

	pValue = new int[iNum];

	for (int i = 0; i < iNum; ++i)
		cin >> pValue[i];

	cout << NeedTime(pValue, 0) << endl;
	
	return 0;
}