본문 바로가기
Java/알고리즘

[Java] 프로그래머스 - 할인 행사

by WaterPunch 2024. 10. 6.

 

import java.util.HashMap;

class Solution {
    public int solution(String[] want, int[] number, String[] discount) {
        HashMap<String, Integer> map = new HashMap<>();
        int answer = 0;
        
        for(int i=0; i< discount.length - 9; i++) {
        //첫째날에는 map에 처음 열흘동안 할인하는 물품들의 갯수를 넣어준다.
            if(i == 0) {
                for(int j=0; j<10; j++) {
                    map.put(discount[j], map.getOrDefault(discount[j], 0) + 1);
                }
            } else {
            // 할인 둘째날부터는 첫째날의 물품을 -1, 할인 둘째날의 열흘뒤 물품을 +1 해준다
                map.put(discount[i-1], map.get(discount[i-1]) - 1);
                map.put(discount[i+9], map.getOrDefault(discount[i+9], 0) + 1);
            }
            // 원하는 물건이 열흘간의 회원가입 기간동안 할인품목에 들어있는지 플래그 처리
            boolean allIsContains = true;
            for(int j=0; j<want.length; j++) {
                if(number[j] != map.getOrDefault(want[j], 0)) {
                    allIsContains = false;
                };
            }
	
            if(allIsContains) answer++;
            // 원하는 물건이 열흘간의 회원가입 기간동안 포함되어있다면 answer++
        }

        return answer;
    }
}
반응형

댓글