오브젝트로 과일과 개수를 매치시켜 저장합니다.
만든 오브젝트를 복사하여 일회용 오브젝트를 생성한 뒤 discount배열을 반복해서 오브젝트에 존재한다면 -1 감소시킵니다.
복사한 오브젝트의 값을 모두 더해 0이 나온다면 모두 산 것이므로 정답을 1 증가시킵니다.
function solution(want, number, discount) {
let answer = 0;
let want_dic = {};
for (let i = 0; i < want.length; i++) {
want_dic[want[i]] = number[i];
}
let i = 0;
while (i <= discount.length - 10) {
const temp_dic = { ...want_dic };
let dis = discount.slice(i, i + 10);
for (let j = 0; j < dis.length; j++) {
if (temp_dic[dis[j]]) {
temp_dic[dis[j]]--;
}
}
i++;
if (Object.values(temp_dic).reduce((a, c) => a + c) === 0) answer++;
}
return answer;
}