[프로그래머스] 할인 행사 (JS)

hhkim·2023년 8월 16일
0

Algorithm - JavaScript

목록 보기
104/188
post-thumbnail

풀이 과정

  1. discount 배열의 남은 길이가 10개 이상일 동안 반복하면서 10개씩 자르기: slice()
  2. want의 각 요소에 대해 반복
  3. 현재 2의 요소가 1 배열에 있는 2 요소의 수보다 같거나 작은지 확인: filter()
  4. 모든 값이 4번을 만족하면 결과 +1

코드

function solution(want, number, discount) {
  let result = 0;
  for (let i = 0; i + 10 <= discount.length; ++i) {
    const sliced = discount.slice(i, i + 10);
    let isOk = true;
    for (let j = 0; j < want.length; ++j) {
      if (sliced.filter((e) => e === want[j]).length < number[j]) {
        isOk = false;
        break;
      }
    }
    if (isOk) ++result;
  }
  return result;
}

0개의 댓글