할인 행사

문제


문제 풀이

1씩 증가하는 반복문에 + 1~10 까지 증가하는 두개의 반복문으로 매일 진행되는 할인행사물품의 수를 계산하고, 그 계산된 값과 구매하기 원하는 물품의 개수를 비교하였을 때 할인 되는 제품이 더 많이 남아 있는 경우의 날만 계산하여 카운팅하고 반환하는 문제이다. 


나의 답안

public static int solution(String[] want, int[] number, String[] discount) {
    int answer = 0;

    Map<String, Integer> wantMap = new HashMap<>();

    for (int i = 0; i < want.length; i++) {
        wantMap.put(want[i], number[i]);
    }

    for (int i = 0; i <= discount.length - 10; i++) {
        Map<String, Integer> discountMap = new HashMap<>();

        for (int j = 0; j < 10; j++) {
            discountMap.put(discount[i + j], discountMap.getOrDefault(discount[i + j], 0) + 1);
        }

        boolean flag = true;
        for (String key : wantMap.keySet()) {
            int wantCount = wantMap.get(key);
            int discCount = discountMap.getOrDefault(key, 0);
            if (wantCount > discCount){
                flag= false;
                break;
            }
        }

        if (flag) {
            answer++;
        }
    }

    return answer;
}

'Programmers 문제풀이 > Lv.2' 카테고리의 다른 글

주차 요금 관리  (0) 2023.04.04
[3차] n진수 게임  (0) 2023.04.03
피로도  (0) 2023.04.03
k진수에서 소수 개수 구하기  (0) 2023.04.03
전화번호 목록  (0) 2023.04.03