728x90
▶문제 : Source Code (codeup.kr)
▶코드 작성
#include <stdio.h>
#include <stdlib.h>
void quicksort(int *arr, int left, int right)//퀵 정렬
{
int L = left, R = right, temp;
int pivot = arr[(L + R) / 2];
while (L <= R)
{
while (arr[L] > pivot) L++;
while (arr[R] < pivot) R--;
if (L <= R)
{
if (L != R)
{
temp = arr[L];
arr[L] = arr[R];
arr[R] = temp;
}
L++;
R--;
}
}
if (left < R) quicksort(arr, left, R);
if (right > L) quicksort(arr, L, right);
}
int main()
{
int n, a, b, dow, i, temp, sum = 0;
int *tp;
scanf("%d%d%d%d", &n, &a, &b, &dow);
tp = (int *)malloc(sizeof(int) * n);
for (i = 0; i < n; i++)
{
scanf("%d", &tp[i]);
}
quicksort(tp, 0, n - 1);//내림차순 퀵정렬
temp = dow / a;//토핑 없을 때
for (i = 0; i < n; i++)
{
sum += tp[i];//토핑 칼로리 합
if (temp < (dow + sum) / (a + b * (i + 1)))//합한 값이 더 클 때
temp = (dow + sum) / (a + b * (i + 1));
}
printf("%d", temp);
free(tp);
return 0;
}
▶해석
토핑 칼로리 배열(tp)을 내림차순으로 정렬한 후 1달러당 열량을 for문으로 계산
728x90
'코드업(codeup) > C' 카테고리의 다른 글
코드업(codeup) 2633 : Lower Bound C언어 (0) | 2021.11.16 |
---|---|
코드업(codeup) 1173 : 30분전 C언어 (0) | 2021.11.16 |
코드업(codeup) 3301 : 거스름돈 C언어 (0) | 2021.11.16 |
코드업(codeup) 3120 : 리모컨 C언어 (0) | 2021.11.16 |
코드업(codeup) 2001 : 최소 대금 C언어 (0) | 2021.11.15 |
댓글