import java.util.HashMap;
class Solution {
public int solution(String[] want, int[] number, String[] discount) {
HashMap<String, Integer> map = new HashMap<>();
int answer = 0;
for(int i=0; i< discount.length - 9; i++) {
//첫째날에는 map에 처음 열흘동안 할인하는 물품들의 갯수를 넣어준다.
if(i == 0) {
for(int j=0; j<10; j++) {
map.put(discount[j], map.getOrDefault(discount[j], 0) + 1);
}
} else {
// 할인 둘째날부터는 첫째날의 물품을 -1, 할인 둘째날의 열흘뒤 물품을 +1 해준다
map.put(discount[i-1], map.get(discount[i-1]) - 1);
map.put(discount[i+9], map.getOrDefault(discount[i+9], 0) + 1);
}
// 원하는 물건이 열흘간의 회원가입 기간동안 할인품목에 들어있는지 플래그 처리
boolean allIsContains = true;
for(int j=0; j<want.length; j++) {
if(number[j] != map.getOrDefault(want[j], 0)) {
allIsContains = false;
};
}
if(allIsContains) answer++;
// 원하는 물건이 열흘간의 회원가입 기간동안 포함되어있다면 answer++
}
return answer;
}
}
반응형
'Java > 알고리즘' 카테고리의 다른 글
[Java] 프로그래머스 Lv2 - 모음 사전 (0) | 2024.11.03 |
---|---|
[Java] 프로그래머스 Lv2 - 방문 길이 (0) | 2024.10.30 |
[Java] 프로그래머스 [2024 KAKAO WINTER INTERNSHIP] 가장 많이 받은 선물 (1) | 2024.09.28 |
[Java] 프로그래머스 [PCCP 기출문제] 1번 / 동영상 재생기 (0) | 2024.09.27 |
[Java] 프로그래머스 [PCCP 기출문제] 1번 / 붕대 감기 (0) | 2024.09.27 |
댓글