문제
https://school.programmers.co.kr/learn/courses/30/lessons/135808
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답
import java.util.*;
class Solution {
public int solution(int k, int m, int[] score) {
HashMap<Integer,Integer> hash = new HashMap<>();
for(int price : score){
if(hash.get(price)==null){
hash.put(price,1);
}else{
hash.put(price,hash.get(price)+1);
}
}
int answer = 0;
while(k>0){
int counter = m;
while(counter>0 && k>0){
if(hash.get(k)!=null && hash.get(k)>0){
hash.put(k, hash.get(k)-1);
counter--;
}else if(hash.get(k)==null || hash.get(k)==0){
k--;
}
if(counter==0){
answer+=k*m;
}
}
}
return answer;
}
}
해시맵에 해당하는 것의 개수를 count하여가며 문제를 풀어내는 방식이다.
배열만 생각하며 풀었을때와는 활용성이 많이 달라 발전한 것 같지만, 코드가 조금 더 간결 할 수 있을것 같아 다른사람의 풀이도 찾아보고 배워야겠다.
'Coding Test > JAVA 코딩테스트 풀이정리(프로그래머스)' 카테고리의 다른 글
프로그래머스 스쿨 Lv.1 - 가장 많이 받은 선물(2024 KAKAO WINTER INTERNSHIP/복잡한 비교) (0) | 2024.01.05 |
---|---|
프로그래머스 스쿨 Lv.1 - 예산(sort) (0) | 2024.01.02 |
프로그래머스 스쿨 Lv.1 - 추억 점수(해시) (1) | 2024.01.02 |
프로그래머스 스쿨 Lv.1 - 최소직사각형(완전탐색) (1) | 2024.01.02 |
프로그래머스 스쿨 Lv.1 - 소수찾기(에라토스테네스의 체) (1) | 2024.01.02 |