본문 바로가기

Programming/Algorithm

<코드업> 3321 : 최고의 피자

#include <stdio.h>
int getMax(int [], int);    //배열중 최대값의 인덱스를 반환
int main(){
    int kot[101];    //토핑의 종류 100가지, 101번째는 도우의 칼로리
    int a, b, n;

    scanf("%d %d %d %d", &n, &a, &b, &kot[101]);
    
    for(int i=0; i<n; i++) scanf("%d", &kot[i]);

    int SumOfKal = kot[101];        //토핑을 얹어놓지 않은경우
    int DolPerKal = SumOfKal / a;
    
    //n개의 토핑 중 높은 칼로리 순으로 추가 한 경우와 비교
    for(int i = 1;i <= n ; i++){
        int tmp = DolPerKal;
        SumOfKal += kot[getMax(kot, n)];
        DolPerKal = sumOfKal / (a + (i * b)); //달러 당 열량의 수
        
        if(tmp > DolPerKal){
            DolPerKal = tmp; break;
        } else{
            kot[getMax(kot, n)] = -1;
        }        
    }
    printf("%d", DolPerKal);
}
int getMax(int A[], int n){
    int max = 0;
    for(int i=1;i<n;i++)
        if(A[max] < A[i]) max = i;
    return max;
}

'Programming > Algorithm' 카테고리의 다른 글

<코드업> 4713 : 공주님의 정원  (0) 2019.07.12
<코드업> 4040 : 펜션  (0) 2019.07.08
<코드업> 3301 : 거스름돈  (0) 2019.07.03
<코드업> 2001 : 최소 대금  (0) 2019.07.03
[C++] 백준 11399번 : ATM  (0) 2019.07.03