우선순위 큐(Priority Queue)
※ 큐(Queue)는 선입선출(First In First Out)
우선순위 큐(Priority Queue)는 들어온 순서와는 상관 없이 우선순위가 높은 데이터가 먼저 이다.
1. 숫자가 큰 순서(내림차순)
2. 숫자가 동일하면 이름 순(A-Z)
※ 우선순위 큐는 내부적으로 Heap 구조를 이루고 있습니다.
* Comparable 구현
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) {
PriorityQueue<Person> pq = new PriorityQueue<>();
pq.offer(new Person("banana", 10));
pq.offer(new Person("apple", 10));
pq.offer(new Person("orange", 20));
while(!pq.isEmpty()) {
System.out.println(pq.poll());
}
}
}
class Person implements Comparable<Person> {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int compareTo(Person target) {
// 큰 숫자가 먼저 (내림차순)
if (this.age > target.age)
return -1;
else if (this.age < target.age)
return 1;
else {
// A-Z 오름차순
return this.name.compareTo(target.name);
}
}
@Override
public String toString() {
return name + " (" + age + ")";
}
}
Reference
[BOJ] 백준 10814 나이순 정렬
출처: https://www.acmicpc.net/problem/10814 Input 3 21 Junkyu 21 Dohyun 20 Sunyoung Output 20 Sunyoung 21 Junkyu 21 Dohyun 회원을 나이 순, 나이가 같으면 가입한 순 정렬하는 문제입니다. 우선순..
zoosso.tistory.com
[BOJ] 백준 16236 아기상어
삼성 SW 코딩 테스트 준비(A형) 삼성 SW 기출 모음 출처: https://www.acmicpc.net/problem/16236 Input 4 4 3 2 1 0 0 0 0 0 0 9 0 1 2 3 4 Output 14 ① 처음 상어의 크기 = 2 ② 상어는 자신의 크기보..
zoosso.tistory.com
[BOJ] 백준 8979 올림픽
출처: https://www.acmicpc.net/problem/8979 Input 4 3 1 1 2 0 2 0 1 0 3 0 1 0 4 0 0 1 Output 2 국가별로 금, 은, 동 개수로 올림픽 순위를 구해보려고 합니다. 1. 금메달 수가 더 많은 국가 2. 금메달..
zoosso.tistory.com
[BOJ] 백준 11651 좌표 정렬하기 2
출처: https://www.acmicpc.net/problem/11651 Input 5 0 4 1 2 1 -1 2 2 3 3 Output 1 -1 1 2 2 2 3 3 0 4 - 우선순위 큐와 Comparable을 이용해 구현 import java.io.*; import java.util.*; public clas..
zoosso.tistory.com
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 가비지 컬렉션(Garbage Collection) (0) | 2021.03.02 |
---|---|
[Java] 오버로딩(Overloading) (0) | 2021.02.23 |
[Java] [예제] 비만 지수 구하기 (0) | 2021.02.23 |
[Java] 역컴파일로 기본 생성자 확인해보기 (0) | 2021.02.23 |
[Java] 기본 생성자 & 매개변수 생성자 (1) | 2021.02.23 |
댓글