[프로그래머스|JAVA] 더 맵게 | 💡 우선순위 큐 활용 | Min Heap

2025. 8. 25. 14:53·💻코딩/💡Programmers
728x90
반응형

[문제 링크]

 

프로그래머스

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

programmers.co.kr

[문제]

 


 

📍 [코드]

import java.util.*;
class Solution {
    public int solution(int[] scoville, int K) {
        int cnt = 0;
        
        PriorityQueue<Integer> pq = new PriorityQueue<>(); // 자동 오름차순 (Min Heap)
        for (int s : scoville) pq.add(s);
       
        while(pq.size() > 1 && pq.peek() < K){
            int first = pq.poll();
            int second = pq.poll();
            int newSco = first + (second * 2);
            
            pq.add(newSco);
            cnt++;
        }
    
        return pq.peek() < K ? -1 : cnt;
    }
}

 

💡 접근법

  • 우선순위 큐를 활용하여 자동으로 오름차순으로 정렬되도록 한다.
  • 배열의 값 큐에 넣어 정렬하고
  • 큐가 비어있지 않고, 제일 위의 값이 K보다 작을 때 반복문을 반복하며 횟수를 측정한다.
    • 큐의 제일 처음 값을 삭제하며 first에 저장하고,
    • 삭제한 후의 제일 처음 값을 삭제하며 second에 저장
    • 이후, 문제에 나온 조건대로 2를 곱하고 더하여 새로운 값 생성
    • 새로운 값을 큐에 넣어 자동으로 정렬되도록 한다. 
  • 반복문이 끝난 후, 모든 값이 K이상이어야 하므로 제일 첫 값이 K보다 작다면 -1 반환

✅ 우선순위 큐 사용

✅ peek()→ 값 꺼내지 ❌ 보기만 / poll() → 값 꺼냄 ⭕️

 


 

💬 마무리

우선순위 큐가 자동으로 정렬을 해줘서 편한 것 같다.
이 문제는 우선순위 큐를 안다면 크게 어렵지 않은 문제인 것 같다.

 

 

 

 

728x90
반응형

'💻코딩 > 💡Programmers' 카테고리의 다른 글

[프로그래머스|JAVA] 하샤드 수 | 🌐 아스키코드 활용 -> 형변환  (5) 2025.08.25
[프로그래머스|JAVA] 콜라츠 추측 |💡 타입 오버플로우 문제 해결 (long)  (0) 2025.08.25
[프로그래머스|JAVA] 게임 맵 최단거리 | ↔️ BFS 활용 | Queue 활용  (5) 2025.08.25
[프로그래머스|JAVA] 타겟 넘버 | ↕️ DFS 활용 | 간결 코드  (4) 2025.08.24
[프로그래머스|JAVA] 네트워크 | ↕️ DFS (깊이 우선 탐색) | 재귀적 방식  (0) 2025.08.24
'💻코딩/💡Programmers' 카테고리의 다른 글
  • [프로그래머스|JAVA] 하샤드 수 | 🌐 아스키코드 활용 -> 형변환
  • [프로그래머스|JAVA] 콜라츠 추측 |💡 타입 오버플로우 문제 해결 (long)
  • [프로그래머스|JAVA] 게임 맵 최단거리 | ↔️ BFS 활용 | Queue 활용
  • [프로그래머스|JAVA] 타겟 넘버 | ↕️ DFS 활용 | 간결 코드
망꼬누나
망꼬누나
공부한 내용을 정리하는 공간입니다.
  • 망꼬누나
    망꼬누나의 개발 공부
    망꼬누나
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • ℹ️ 정보 및 실습 (19)
        • ☑️ Git & GitHub (8)
        • ☑️ 프로젝트 (6)
        • ☑️ 회고 및 후기 (5)
      • 🛠 CS (1)
      • 💻코딩 (88)
        • 💡Baekjoon (17)
        • 💡Programmers (71)
      • ✏️공부 (48)
        • 💡OS (1)
        • 💡Network (6)
        • 💡SpringBoot (9)
        • 💡JAVA (21)
        • 💡SQL (1)
        • 💡DB (2)
        • ☁️ Cloud (4)
        • 💡알고리즘 (4)
      • 📌 자격증 (6)
        • 📝정보처리기사 (3)
        • 📝SQLD (3)
  • 블로그 메뉴

    • 홈
    • github
  • 나의 GitHub Contribution 그래프
    Loading data ...
  • 인기 글

  • 태그

    백엔드
    Set
    데브코스
    AWS
    Stream
    자바
    네트워크
    트랜잭션
    코딩테스트
    github
    GIT
    자료구조
    프로그래머스
    baekjoon
    프로그래머스 #JAVA
    알고리즘
    S3
    동시성제어
    map
    Java
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.5
망꼬누나
[프로그래머스|JAVA] 더 맵게 | 💡 우선순위 큐 활용 | Min Heap
상단으로

티스토리툴바