Algorithm/Programmers
[Programmers] 할인 행사 / ⭕
cks._.hong
2024. 10. 6. 15:28
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 제출 코드 (7분 00초 / 맵)
import java.util.*;
class Solution {
public int solution(String[] want, int[] number, String[] discount) {
int answer = 0;
Map<String, Integer> m = new HashMap<>();
for(int i = 0; i <= discount.length - 10; i++) {
m = new HashMap<>();
for(int j = 0; j < 10; j++) {
m.put(discount[i + j], m.getOrDefault(discount[i + j], 0) + 1);
}
boolean isValid = true;
for(int j = 0; j < want.length; j++) {
if(m.getOrDefault(want[j], 0) < number[j]) {
isValid = false;
break;
}
}
if(isValid) {
answer++;
}
}
return answer;
}
}
2. 구현 로직
- 10일 연속으로 일치할 경우에 회원가입을 하므로 discount의 앞에서부터 10개씩 검사를 진행한다.
- 맵에 각 상품의 COUNT를 저장하고 정현이가 사고자하는 품목과 개수를 비교한다.
- 만약, 그 값이 크다면 answer + 1
- 만약, 작다면 회원가입하면 안되는 날이므로 break를 통해 반복문을 빠져나온다.