-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
해결됨
PriorityQueue 오류 수정 부분
20.08.10 15:14 작성 조회수 113
1
안녕하세요 강의를 잘 듣다가 궁굼한 점이 생겨서 질문 드립니다.
PriorityQueue<interval>(intervals, Comp2)</interval>
→ PriorityQueue<interval>(intervals.length, Comp2)</interval>
로 수정하는 부분에서 왜 length를 붙여줘야 오류가 없어지는지 궁금합니다.
+)
Queue<Interval> heap = new PriorityQueue<Interval>()
로 해서 우선순위큐에 저장하면 밑에 for문에서 인자를 넣고 빼는 과정을 수행해도 우선순위에 의해서 정렬이 자동으로 되는건가요?
답변을 작성해보세요.
2
푸샵맨 코딩스터디
지식공유자2020.08.11
안녕하세요~만나서 반갑습니다~
질문주신
1.PriorityQueue<interval style="color:#000a12;font-family:'Noto Sans KR', -apple-system, system-ui, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', Helvetica;font-size:16px;box-sizing:inherit">(intervals, Comp2)</interval>
→ PriorityQueue<interval style="box-sizing:inherit">(intervals.length, Comp2)</interval>
로 수정하는 부분에서 왜 length를 붙여줘야 오류가 없어지는지 궁금합니다.
=> 원래 length를 넣어야합니다. 제공되는 형태입니다. 우리는 맞춰져야하죠
PriorityQueue 구현 방식이 다양합니다. 버젼이 혼재해서
예를들어 람다식으로 표현하면
→ new PriorityQueue<>((a, b)->a.start- b.start) 이런식으로 됩니다. 제가 조만간 정리영상을 넣을예정입니다.
이유는 PriorityQueue 문제는 기필코 나옵니다. 무조건
2. Queue<Interval> heap = new PriorityQueue<Interval>()
로 해서 우선순위큐에 저장하면 밑에 for문에서 인자를 넣고 빼는 과정을 수행해도 우선순위에 의해서 정렬이 자동으로 되는건가요?
=> 맞습니다. 그걸 하기 위해서 PriorityQueue를 쓰는거죠
다익스트라 알고리즘 같은것도 비교해가면서 PriorityQueue에 던져주면 알아서 정렬해줍니다.
MaxHeap, MinHeap 이 있습니다. bst트리구조로 되어서 시간복잡도는 (logN) 빠른속도로 정렬해서
리턴해줍니다.
지금 질문 주신 내용은 아주 핵심입니다. 카카오 블라인드 코딩 2018인가에서 PriorityQueue 비슷한게 동시에 3개 나왔습니다
답변 1