<소스코드>
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int n;
int time = 0;
cin >> n;
int atm[n];
for(int i = 0; i < n; i++){
cin >> atm[i];
}
sort(atm, atm+n); //배열의 정렬 배열이름, 배열이름 + 배열의 크기
for(int i = 0; i < n; i++){
for(int j = 0; j <= i; j++){
time+=atm[j];
}
}
cout << time << endl;
return 0;
}
- 변수&함수
int n : 사람의 수
int time : 인출하는 총 시간
int atm[n] : 각 사람의 인출 시간
- 알고리즘
1) 각 사람의 인출하는 시간이 짧은 사람이 먼저 인출을 해야한다. 왜냐하면 뒤에 사람들은 앞 사람의 인출시간을 기다려야 하기 때문이다. 그래서 오름차순 정리를 한다
ex) 12345: 3번이 기다리는 시간 : 1+2+3 = 6
54321 : 3번이 기다리는 시간 : 5+4+3 = 12
2) 정렬한 후 각 사람이 기다리는 시간을 더해서 출력한다.
- 배운점
배열 sort
=> sort(시작지점, 끝나는 지점+1)
=> sort(배열의 포인터, 배열의 포인터 + 배열의 크기)
ex) int a[100] -> sort(a,a+100);
- 아쉬운점&느낀점
easy했따!