본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 11399/c++] ATM

by tokkiC 2022. 7. 29.

총 시간이 최소일때의 시간이 되려면 앞에는 작은 수를, 뒤로 갈수록 큰수를 두어 오름차순 정렬시키면 된다

주어진 시간들을 배열이나 벡터에 넣고(배열이 더 빠르다) sort 로 오름차순 정렬 후

for 문으로 개수를 추가해 돌면서 누적 합을 구해주면 되는 문제였다

https://www.acmicpc.net/problem/11399

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;

int main(){
	
	int n; 
	int num;
	int sum = 0;
	int ar[1004];
	
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> num;
		ar[i] = num;
	}
	sort(ar, ar + n);
	
	for (int i = n - 1; i >= 0; i--)
	{
		for (int j = 0; j < n - i; j++)
		{
			sum += ar[j];
		}
	}
	cout << sum << "\n";
	
	return 0;
}

댓글