자바에서는 Heap을 위한 클래스가 따로 있진 않다. 우선순위 큐를 통해서 Heap기능을 대신할 수 있다.
우선순위 큐 : 우선순위 큐에서, 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리되는 Queue
- 특정조건에 맞게 queue를 배치하여 들어갈 때 우선순위 조건에 맞게 queue가 설정
- 주어진 원소들 중에서 조건에 맞게 순서대로 뽑아내고자 할 때 사용할 수 있다.
사용 방법
import java.util.PriorityQueue;
PriorityQueue<Integer> Q = new PriorityQueue<>((e1, e2) -> {
//조건 등등
return e1 - e2;//예시
});
해당 사용방식은 람다식을 사용한 형식으로 아마 코딩테스트를 하면 이런 방법으로 사용하지 않을까 싶다.
객체에 적용하고자 하면 Comparable<클래스>를 implements해야하고,
public int compareTo(객체 o){
return ~~;
} 오버라이드 메소드를 구현해야 한다.
푸는데 사용한 문제 예시
https://www.acmicpc.net/problem/11286
'공부-코딩테스트 > Java-코딩테스트-편의기능' 카테고리의 다른 글
자바 : 해시맵 사용법 (0) | 2022.08.13 |
---|---|
자바 리스트 특정 위치에 다른 리스트를 삽입하는 방법 (0) | 2022.08.08 |
stream을 사용해서 String배열을 int형배열로 변경하는 법 (0) | 2022.08.07 |
배열값을 특정값으로 채우는 방법 Arrays.fill() (0) | 2022.08.07 |
1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (0) | 2022.08.05 |
댓글