PS/Baekjoon Online Judge

[백준 11399] ATM [C]

kimyoungrok 2021. 8. 7. 21:02

백준 - 11399


풀이

입력받은 시간을 오름차순으로 정렬 후, 기존의 대기시간(sum)과 i번째 사람이 인출하는데 걸리는 시간(arr[i])을

result에 누적 합으로 저장해주면 된다.


소스코드

#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b){
    return *(int*)a - *(int*)b;
}
int main(){
    int N;
    scanf("%d", &N);
    int arr[N];
    for (int i = 0; i < N; i++)
        scanf("%d", &arr[i]);
    qsort(arr, N, sizeof(int), compare);
	
    int result = 0;
    for (int i = 0, sum = 0; i < N; result+=(sum+=arr[i++]));
    printf("%d", result);
}

출처

 

11399번: ATM

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

www.acmicpc.net