[프로그래머스] 할인 행사 / JavaScript / Level 2

KimYoungWoong·2022년 11월 22일
0

Programmers

목록 보기
29/60
post-thumbnail

🚩문제 주소


📄풀이


오브젝트로 과일과 개수를 매치시켜 저장합니다.

만든 오브젝트를 복사하여 일회용 오브젝트를 생성한 뒤 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;
}

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글