느려도 한걸음씩

문제 6 - 할인 행사(해시) 본문

알고리즘/코테대비 100문제

문제 6 - 할인 행사(해시)

hoj0806 2025. 2. 4. 15:07

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131127

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제

 

내 답안 코드

function solution(want, number, discount) {

    let answer = 0
    
    let dp = {}

    for(let i = 0; i < want.length; i++) {
        dp[want[i]] = number[i]
    }

  
    for(let i = 0; i < discount.length - 10 + 1; i++) {
        let slice = discount.slice(0 + i, 10 + i)
        let copy = {...dp}
        for(let j = 0; j < slice.length; j++) {
            let item = slice[j]
            
            if(item in copy) {  
              copy[item]-=1
            }
            
            if(copy[item] === 0) {
                delete copy[item]
            }
            
        }
        
        if(Object.keys(copy).length === 0) {
            answer+=1
        }
       
    }
    return answer
}