[프로그래머스] 29 : 할인 행사

서예진·2024년 2월 26일
0
post-custom-banner

목차 💻

▸ 할인 행사


✅ 할인 행사 : Lv.2

▼ 문제

출처: 프로그래머스 코딩테스트 연습 > 연습문제 > 할인 행사

▼ 내 풀이

  • HashMap을 사용했다.
  • 우선, 원하는 품목과 수량을 map에 저장한다.
  • 또한, 할인하는 품목과 수량을 map에 저장한다.
  • 이 두 map을 비교해서 같은 key의 값이 같은경우 +1을 한다.
import java.util.*;

class Solution {
    public int solution(String[] want, int[] number, String[] discount) {
        int answer = 0;
        
        Map<String, Integer> map = new HashMap<>();
        
        //원하는 품복과 수량을 map에 저장
        for(int i = 0; i < want.length; i++){
            map.put(want[i], number[i]);
        } 
       
        for(int i = 0; i < discount.length - 9; i++){
            Map<String, Integer> dMap = new HashMap<>();
            
            for(int j = 0; j < 10; j++){
                dMap.put(discount[i + j], dMap.getOrDefault(discount[i + j], 0) + 1);
            }
            
            Boolean same = true;
            
            for(String key : map.keySet()){
                if(map.get(key) != dMap.get(key)){
                    same = false;
                    break;
                }
            }
            
            answer += same ? 1 : 0;
        }
        
        return answer;
    }
}

profile
안녕하세요
post-custom-banner

0개의 댓글