이모티콘 할인행사

LJM·2023년 8월 7일
0

programmers

목록 보기
47/92

import java.util.*;

class Solution {

    static int[] salerates = {10, 20, 30, 40};

    static int[] answer = new int[2];

    static int[] salemix;

    static int maxSubscriptions = 0;
    static int maxSales = 0;

    public int[] solution(int[][] users, int[] emoticons) {

        salemix = new int[emoticons.length];


        dfs(0, users, emoticons);

        return answer;
    }

    public static void dfs(int depth, int[][] users, int[] emoticons){

        if(depth == emoticons.length)
        {
            int subscription = 0;

            int sales = 0;
            for (int[] user : users)
            {

                int cost = 0;
                for(int i = 0; i < emoticons.length; ++i){

                    if(salemix[i] < user[0])
                        continue;

                    cost += emoticons[i] * (100-salemix[i]) / 100;
                }

                if(cost >= user[1])
                    subscription++;
                else
                    sales += cost;
            }

            if(maxSubscriptions <= subscription){

                if(maxSubscriptions < subscription)
                    maxSales = 0;

                maxSubscriptions = subscription;

                if(maxSales < sales)
                    maxSales = sales;
            }

            answer[0] = maxSubscriptions;
            answer[1] = maxSales;

            return;
        }



        for(int i = 0; i < salerates.length; ++i){

            salemix[depth] = salerates[i];

            dfs(depth+1, users, emoticons);
        }
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글