[프로그래머스] 야근지수 (JAVA/자바)

2026. 2. 3. 15:26·PS/프로그래머스

[문제 링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12927

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명

야근피로도 = (N시간 동안 야근 후 남은 일의 각 작업량^2) 을 모두 더한 값

N시간동안 works 배열에 담긴 각 일의 작업량을 적절하게 처리했을 때, 야근 피로도의 최소값을 구한다.

1시간동안 작업량 1을 처리할 수 있다.

 

 

 

문제 풀이

알고리즘 분류

  • 우선순위 큐(PriorityQueue)

야근 피로도의 최소값을 구하려면 작업량이 가장 많은 일부터 처리해서 제곱근의 크기를 작게 한다.

 

PriorityQueue에 현재 남은 작업량을 담고, ollections.reverseOrder()로 내림차순 정렬한다.

n번만큼 반복하면서 작업량이 가장 많은 일부터 -1 한다.

작업량이 0인 경우에는 큐에 다시 넣지 않는다.

 

전체코드

import java.util.*;

class Solution {
    public long solution(int n, int[] works) {
        long answer = 0;

        PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
        
        for(int w : works) {
            pq.add(w);
        }
        
        while(n > 0 && !pq.isEmpty()) {
            int poll = pq.poll();
            if((poll - 1) > 0) {
                pq.add(poll - 1);
            }
            n--;
        }
        
        while(!pq.isEmpty()) {
            int work = pq.poll();
            answer += work * work;
        }
        return answer;
    }
}

 

저작자표시 비영리 변경금지 (새창열림)

'PS > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 예상 대진표 (JAVA/자바)  (0) 2026.02.10
[프로그래머스] 주차 요금 계산 (JAVA/자바)  (0) 2026.02.09
[프로그래머스]완주하지 못한 선수 (JAVA/자바)  (0) 2025.10.22
[프로그래머스] 여행경로 (JAVA/자바)  (0) 2025.09.18
'PS/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 예상 대진표 (JAVA/자바)
  • [프로그래머스] 주차 요금 계산 (JAVA/자바)
  • [프로그래머스]완주하지 못한 선수 (JAVA/자바)
  • [프로그래머스] 여행경로 (JAVA/자바)
nyrimmm
nyrimmm
  • nyrimmm
    NA의 개발냥발
    nyrimmm
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 홈
    • 태그
    • 분류 전체보기 (94)
      • Java (5)
      • Spring & SpringBoot (3)
      • Network (1)
      • SQL (1)
      • IntelliJ (3)
      • 자료구조 & 알고리즘 (2)
      • 트러블 슈팅 (0)
        • Spring (0)
      • PS (79)
        • 백준 (31)
        • 프로그래머스 (5)
        • SQL (10)
        • 이코테 (33)
      • 후기 & 회고 (0)
  • 태그

    HashMap
    PriorityQueue
    우선순위큐
    백준
    구현
    이진탐색
    프로그래머스
    투포인터
  • hELLO· Designed By정상우.v4.10.6
nyrimmm
[프로그래머스] 야근지수 (JAVA/자바)
상단으로

티스토리툴바