PriorityQueue 오류 수정 부분

해결됨
웃는광대 프로필

안녕하세요 강의를 잘 듣다가 궁굼한 점이 생겨서 질문 드립니다.

PriorityQueue(intervals, Comp2)

→ PriorityQueue(intervals.length, Comp2)

로 수정하는 부분에서 왜 length를 붙여줘야 오류가 없어지는지 궁금합니다.

+)

Queue<Interval> heap = new PriorityQueue<Interval>()

로 해서 우선순위큐에 저장하면 밑에 for문에서 인자를 넣고 빼는 과정을 수행해도 우선순위에 의해서 정렬이 자동으로 되는건가요?

푸샵맨 코딩스터디 프로필
푸샵맨 코딩스터디 2달 전

안녕하세요~만나서 반갑습니다~

질문주신

1.PriorityQueue(intervals, Comp2)

→ PriorityQueue(intervals.length, Comp2)

로 수정하는 부분에서 왜 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개 나왔습니다

 

 

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스