[Programmers] 할인 행사
2023. 8. 17. 15:13ㆍComputer Sciences/Problem Solve
https://school.programmers.co.kr/learn/courses/30/lessons/131127
문제 설명
간단한 구현 문제이다. 유의할 점은 가장 빨리 모든 물품을 구매하는 날이 아니라 물품 구매가 가능한 모든 날을 구하는 문제라는 점이다.
import java.util.HashMap;
class Solution {
public int solution(String[] want, int[] number, String[] discount) {
int answer = 0;
for (int day = 0; day < discount.length - 9; day++) {
HashMap<String, Integer> map = init(want, number);
for (int i = day; i < day + 10; i++) {
if (map.containsKey(discount[i])) {
map.put(discount[i], map.get(discount[i]) - 1);
continue;
}
break;
}
boolean canAllBuy = true;
for (int value: map.values()) {
if (value > 0) {
canAllBuy = false;
break;
}
}
if (canAllBuy) {
answer++;
}
}
return answer;
}
private HashMap<String, Integer> init(String[] want, int[] number) {
HashMap<String, Integer> result = new HashMap<>();
for (int i = 0; i < want.length; i++) {
result.put(want[i], number[i]);
}
return result;
}
}
'Computer Sciences > Problem Solve' 카테고리의 다른 글
[Programmers] [1차] 뉴스 클러스터링 (0) | 2023.08.17 |
---|---|
[Programmers] 튜플 (0) | 2023.08.17 |
[Programmers] 교점에 별 만들기 (0) | 2023.08.16 |
[Programmers] [1차] 캐시 (0) | 2023.08.16 |
[Programmers] H-Index (0) | 2023.08.10 |