공부-코딩테스트/Java-코딩테스트-편의기능
자바 : 우선순위 큐 사용법
령과
2022. 8. 13. 15:41
자바에서는 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
11286번: 절댓값 힙
첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
GitHub - lyeong-gwa/algorithm_study: 알고리즘 공부!
알고리즘 공부! Contribute to lyeong-gwa/algorithm_study development by creating an account on GitHub.
github.com