https://school.programmers.co.kr/learn/courses/30/lessons/138476
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
int n = tangerine.length;
Arrays.sort(tangerine);
Stack<Integer> stack = new Stack<>();
for(int i = 0; i < n; i++){
if(i == 0){
stack.push(1);
}else{
if(tangerine[i] == tangerine[i-1]){
int num = stack.peek()+1;
stack.pop();
stack.push(num);
}else{
stack.push(1);
}
}
}
int[] tangerineStack = new int[stack.size()];
for(int i = 0; i < stack.size(); i++){
tangerineStack[i] = stack.get(i);
}
Arrays.sort(tangerineStack);
int sum = 0;
for(int i = stack.size()-1; i >= 0; i--){
sum += tangerineStack[i];
answer++;
if(sum >= k){
break;
}
}
return answer;
}
}
/*
1. 귤 배열을 정렬시킴
2. 각 크기에 맞는 귤 개수를 세서 스택에 같은 귤의 개수만 저장
3. 개수가 많은 크기부터해서 k개수가 채워질때까지 더해서
4. 몇 종류의 귤이 필요한지 구함
*/'코딩테스트 > 코딩테스트 문제풀이' 카테고리의 다른 글
| [Java] 프로그래머스 <할인 행사> (0) | 2025.02.11 |
|---|---|
| [Java] 프로그래머스 <N개의 최소공배수> (0) | 2025.02.11 |
| [Java] 프로그래머스 <K번째수> (0) | 2025.02.05 |
| [Java] 프로그래머스 <폰켓몬> (0) | 2025.02.05 |
| [Java] 프로그래머스 <같은 숫자는 싫어> (0) | 2025.02.04 |