https://school.programmers.co.kr/learn/courses/30/lessons/131127
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
오늘의 학습 키워드
HashMap.keySet()
문제를 보고 for문으로 돌아가면서 체크를 하면 되겠다고 생각했다.
discount 배열에서 10개씩 골라가며 10개를 고르기 시작할때마다 discountMap을 초기화 한뒤
해당 이름을 찾아 갯수를 올려준다.
그뒤 정현이의 원하는 제품 갯수와 비교를 해준다면 해결할 수 있다.
시간이 널널하여 문제가 없었지만 HashMap을 다루는 것이 헷갈려 조금 방황하였다.
import java.util.*;
class Solution {
public int solution(String[] want, int[] number, String[] discount) {
//할인하는 제품은 하루에 하나씩만 구매할 수 있습니다.
//자신이 원하는 제품과 수량이 할인하는 날짜와
//10일 연속으로 일치할 경우에 맞춰서 회원가입을 하려 합니다.
int answer = 0;
Map<String, Integer> map = new HashMap<>();
for(int i = 0; i < want.length; i++){
map.put(want[i], number[i]);
}
for(int i = 0; i < discount.length - 9; i++){ //discount에서 시작점
Map<String, Integer> discountMap = new HashMap<>();
for(int k = 0; k< 10;k++){
discountMap.put(discount[i + k], discountMap.getOrDefault(discount[i + k], 0) +1);
}
Boolean compare = true;
for(String key : map.keySet()){
if(map.get(key) != discountMap.get(key)){
compare = false;
break;
}
}
if(compare){
answer += 1;
}
}
return answer;
}
}
for(String key : map.keySet())로 간단하게 for(object a : 배열)과 같이 반복문을 선언할 수 있다는 것을 알게 되었다.
시간이 없어 예정하였던 것을 다 못하였는데 주말에 시간날때 전부 풀어야겠다.;;
반응형
'프로그래머스' 카테고리의 다른 글
99클럽 코테 스터디 9일차 TIL 문자열 내 마음대로 정렬하기 (0) | 2024.04.06 |
---|---|
99클럽 코테 스터디 8일차 TIL 행렬의 곱셈 (0) | 2024.04.05 |
99클럽 코테 스터디 6일차 TIL 기사단원의 무기(약수 구하기) (0) | 2024.04.03 |
99클럽 코테 스터디 5일차 TIL 피보나치수열 (0) | 2024.04.02 |
99클럽 코테 스터디 4일차 TIL 햄버거 만들기 문제(ArrayList remove vs Stack pop) (0) | 2024.04.01 |