처음에 문제를 보고 줄을 2, 5, 1, 4, 3으로 서야 최솟값이 나온다고 하길래 줄을 어떻게 서야하는지를 물어보는줄 알았다. 근데 그냥 그건 필요없고 최솟값만 나오면 되는 문제이다.
? 뭐지 싶었다 그냥 qsort정렬하면 1 2 3 3 4인데 1, 1+2, 1+2+3, 1+2+3+3, 1+2+3+3+4 이걸 다 더하면 끝인데 싶었다.
이정도만 생각하고 코드를 짰다.
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b)
{
int A = *(int *)a;
int B = *(int *)b;
if (A > B)
return 1;
if (A < B)
return -1;
return 0;
}
int main()
{
int n, i, j;
int arr[1001];
int count = 0;
scanf("%d", &n);
i = 0;
while (i < n)
{
scanf("%d", &arr[i]);
i++;
}
qsort(arr, n, sizeof(int), compare);
i = 0;
while (i < n)
{
j = 0;
while (j <= i)
{
count = count + arr[j];
j++;
}
i++;
}
printf("%d", count);
}
다른사람들도 동일하다.