문제풀이/프로그래머스
[JAVA] 프로그래머스 - 야근지수
그적
2021. 2. 17. 18:43
(문제 설명)
(제한 사항)
일단 works를 정렬해주고, 가장 큰 값인 works.length-1 인덱스부터 -1씩 해준다. (귀찮아서 내림차순으로 안했ㄷ..)
works.length-1과 works.length-2 비교해서 인덱스 값과 -1되는 값을 결정해줬다.
public static void main(String[] args) {
int[] works = {4,3,3};
int n = 4;
Arrays.sort(works);
if(works.length != 1) {
int k = works.length-1;
while(n != 0) {
if(works[k-1] < works[k]) {
works[k] -= 1;
k = works.length-1;
}
else if(works[k-1] == works[k]) {
if(k-1 == 0) {
works[k-1] -= 1;
k = works.length-1;
}else {
works[k] -= 1;
k--;
}
}else {
works[k-1] -= 1;
k = works.length;
}
n--;
}
}
else works[0] = works[0] - n;
long min = 0;
for(int i=0; i<works.length; i++) {
if(works[i] < 0) System.out.println("0"); // 코드 제출할 땐 return 0 해줌.
min += Math.pow(works[i], 2);
}
System.out.println(min);
}