문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/135808

제한 사항

입출력 예

풀이
class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
int count = 0;
int[] kArr = new int[k + 1];
final int resultCount = score.length - score.length % m;
for (int i : score) kArr[i]++;
for (int i = k; i > 0; i--) {
if (count == resultCount) break;
int remainder = kArr[i] % m;
count += kArr[i] - remainder;
kArr[i - 1] += remainder;
answer += (kArr[i] - remainder) * i;
}
return answer;
}
}
후기
이번 문제는 보기에는 어렵지 않아 보였는데 ArrayList나 Queue같은 것을 시도해보다가 잘 안 되어서 그냥 배열만 사용해서 풀었다. 뭘 해보려고 하니까 더 안 풀리는 것 같다. 자꾸 복잡하게 생각해서 문제가 잘 안 풀리는데 풀다가 막히면 그냥 다른 방식을 생각할 수 있도록 연습해야겠다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 햄버거 만들기 (0) | 2023.07.03 |
|---|---|
| [프로그래머스][JAVA][Lv. 1] 푸드 파이트 대회 (0) | 2023.07.03 |
| [프로그래머스][JAVA][Lv. 1] 명예의 전당 (0) | 2023.07.01 |
| [프로그래머스][JAVA][Lv. 1] 달리기 경주 (0) | 2023.07.01 |
| [프로그래머스][JAVA][Lv. 1] 문자열 나누기 (0) | 2023.06.30 |