TIL (Today I Learned)
99클럽 코테 스터디 27일차 TIL + 오늘의 학습 키워드
남 희
2024. 8. 17. 21:55
☑️ 문제: 할인 행사
https://school.programmers.co.kr/learn/courses/30/lessons/131127
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
☑️ Code
import java.util.*;
class Solution {
public int solution(String[] want, int[] number, String[] discount) {
// hashMap에 want(key), index(value) 저장
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < want.length; i++) {
map.put(want[i], i);
}
int answer = 0;
int[] count = new int[want.length];
for (int start = 0; start <= discount.length - 10; start++) { // (w. 10^5)
// 1. count 초기화 (w: 10)
for (int i = 0; i < want.length; i++) {
count[i] = number[i];
}
// 2. day ~ day+9, 열흘간 할인 정보를 활용해 count 감소 (10)
for (int day = start; day < start + 10; day++) {
if (map.containsKey(discount[day])) {
count[map.get(discount[day])]--;
}
}
// 3. 열흘간 필요한 걸 모두 구했는지 확인. (w: 10)
answer++;
for (int i = 0; i < want.length; i++) {
if (count[i] > 0) {
answer--;
break;
}
}
}
return answer;
}
}