본문 바로가기
문제풀이/프로그래머스

[JAVA] 프로그래머스 - 야근지수

by 그적 2021. 2. 17.

(문제 설명)

 

(제한 사항)

 

일단 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);
	}

댓글