문제
문제 풀이
1씩 증가하는 반복문에 + 1~10 까지 증가하는 두개의 반복문으로 매일 진행되는 할인행사물품의 수를 계산하고, 그 계산된 값과 구매하기 원하는 물품의 개수를 비교하였을 때 할인 되는 제품이 더 많이 남아 있는 경우의 날만 계산하여 카운팅하고 반환하는 문제이다.
나의 답안
public static int solution(String[] want, int[] number, String[] discount) {
int answer = 0;
Map<String, Integer> wantMap = new HashMap<>();
for (int i = 0; i < want.length; i++) {
wantMap.put(want[i], number[i]);
}
for (int i = 0; i <= discount.length - 10; i++) {
Map<String, Integer> discountMap = new HashMap<>();
for (int j = 0; j < 10; j++) {
discountMap.put(discount[i + j], discountMap.getOrDefault(discount[i + j], 0) + 1);
}
boolean flag = true;
for (String key : wantMap.keySet()) {
int wantCount = wantMap.get(key);
int discCount = discountMap.getOrDefault(key, 0);
if (wantCount > discCount){
flag= false;
break;
}
}
if (flag) {
answer++;
}
}
return answer;
}
'Programmers 문제풀이 > Lv.2' 카테고리의 다른 글
주차 요금 관리 (0) | 2023.04.04 |
---|---|
[3차] n진수 게임 (0) | 2023.04.03 |
피로도 (0) | 2023.04.03 |
k진수에서 소수 개수 구하기 (0) | 2023.04.03 |
전화번호 목록 (0) | 2023.04.03 |