PriorityQueue

    [Java] 프로그래머스 Lv.2 : 더 맵게

    https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 풀이 우선순위 큐(Priority Queue)를 사용한다. 낮은 숫자가 우선순위인 int 형 우선순위 큐를 선언하고 큐에 스코빌지수를 넣어준다. 첫번째 heap의 요소가 K이상이 될 때까지 반복문을 돌린다. 앞의 두 음식을 꺼내(pop) 새로운 음식으로 만들어 다시 heap에 넣어준다.(pull) 가장 앞의 음식의 스코빌 지수가 K이상이 되면 bre..

    [Data Structure] Priority Queue(우선순위 큐) Java로 구현하기

    [Data Structure] Priority Queue(우선순위 큐) Java로 구현하기

    Priority Queue(우선순위 큐)란? 일반적인 큐의 구조 FIFO(First In First Out)을 가지면서, 데이터가 들어온 순서대로 데이터가 나가는 것이 아닌, 각 요소들이 각각의 우선순위를 갖고있고, 요소들의 대기열에서 우선순위가 높은 요소가 먼저 제공되는 자료구조 Priority Queue를 사용하기 위해서는 우선순위 큐에 저장할 객체는 필수적으로 Comparable Interface를 구현해야한다. Comparable Interface를 구현하면 compareTo 메서드를 오버라이드하게 되는데 해당 객체에서 처리할 우선순위 조건을 리턴해주면 Priority Queue가 알아서 우선순위가 높은 객체를 추출해주는 것이다. 우선순위 큐를 구현하는데 있어 대표적인 구현 방식이 힙을 이용하는 ..