728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/131127
문제 풀이 방법
- 중복된 요소의 갯수를 측정하기 위해 Map객체를 이용해 10일 동안 할인하는 물품들의 갯수를 측정한다.
- 이때 측정된 할인 물품 갯수와 원하는 물품의 갯수를 대조해 모두 같다면 answer에 1을 더한다.
코드
const solution = (want, number, discount) => {
let answer = 0;
const check = (arr) => {
let map = new Map();
arr.forEach((e) => {
map.set(e, (map.get(e) || 0) + 1);
})
for(let i=0; i<want.length; i++){
if(map.get(want[i]) !== number[i]) return false;
}
return true;
}
for(let i=0; i<discount.length-9; i++){
const arr = discount.slice(i, i+10);
if(check(arr)){
answer += 1;
}
}
return answer;
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
[JS] 2Level / 연습 문제 / 요격 시스템 (0) | 2023.09.06 |
---|---|
[JS] 2Level / 2018 KAKAO BLIND RECRUITMENT / [3차] n진수 게임 (0) | 2023.08.24 |
[JS] 1Level / 연습문제 / 푸드 파이트 대회 (0) | 2023.08.17 |
[JS] 3Level / 2018 KAKAO BLIND RECRUITMENT / [1차] 캐시 (0) | 2023.07.18 |
[JS] 3Level / 탐욕법 / 단속카메라 (0) | 2023.07.18 |