728x90
반응형
목차
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131127#
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 구현 방향
각 아이템을 map을 통해 개수별로 저장하고
10개씩 슬라이딩 윈도우로 비교해주면 간단하게 풀리는 문제이다.
코드 구현
function solution(want, number, discount) {
var answer = 0;
let m = new Map();
let wants = new Map();
for (let i = 0; i < want.length; i++) {
let num = number[i];
let value = want[i];
wants.set(value, num+ (wants.get(value) || 0));
}
function isSatisfy(wants, m) {
let flag = true;
for (let [key, value] of wants) {
if ((m.get(key) || 0) < value) {
flag = false;
break;
}
}
return flag;
}
for (let i = 0; i < 10; i++) {
let dc = discount[i];
m.set(dc, (m.get(dc) || 0) + 1);
}
let day = 0;
for (let i=0; i <= discount.length - 10; i++) {
if (isSatisfy(wants, m)) day++;
let dis = discount[i];
let plus = discount[i + 10];
m.set(dis, (m.get(dis) || 0) - 1);
m.set(plus, (m.get(plus) || 0) + 1);
}
return day;
}반응형
'PS > 프로그래머스' 카테고리의 다른 글
| [프로그래머스][수학] n^2 배열 자르기 (0) | 2025.11.08 |
|---|---|
| [프로그래머스][완전 탐색] 인사고과 (0) | 2025.11.03 |
| [프로그래머스][조합] 메뉴리뉴얼 (1) | 2025.10.24 |
| [프로그래머스][분할정복] 표현 가능한 이진트리 (0) | 2025.10.22 |
| [프로그래머스][브루트포스] 수식 최대화 (0) | 2025.10.15 |