해당 글은 항해99 클럽 코딩테스트 스터디에서 진행된 19일차(20241115) 비기너 문제에 대한
TIL(Today I Learned) 내용입니다.
문제 출처) https://www.acmicpc.net/problem/1927
문제 상황에서 활용하기에 적합한 구조에 대해 고려하기
더 알아보기
// 오름차순
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
// 내림차순
PriorityQueue<Integer> minHeap = new PriorityQueue<>(Collections.reverseOrder());
- 방법2) Comparable 구현
: Comparable Interface 상속받아서 compareTo 메서드를 구현
: 기준이 되는 것에 대한 항목을 compareTo메서드를 통해 명시한다.
// MyMember 클래스에 대해서 우선순위 지정 필요
PriorityQueue<MyMember> memberQueue = new PriorityQueue<>();
// MyMember 클래스를 Comparable<MyMember> 상속받게 한 다음 compareTo 메서드 구현
class MyMember implements Comparable<MyMember>{
String name;
int age;
public MyMember(String name, int age) {
this.name = name;
this.age = age;
}
// 기준이 되는 것이 age라는 것을 명시하는 것
@Override
public int compareTo(MyMember o) {
return this.age-o.age;
}
}
PriorityQueue<MyMember> memberQueue = new PriorityQueue<>((m1,m2)->m1.age-m2.age);
PriorityQueue<MyMember> memberQueue = new PriorityQueue<>(new Comparator<MyMember>() {
@Override
public int compare(MyMember o1, MyMember o2) {
return o1.age - o2.age;
}
});
위의 내용은 다음을 참고하였습니다.
https://innovation123.tistory.com/112
https://cdragon.tistory.com/entry/자료구조-Heap-Priority-Queue힙과-우선순위-큐