-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
Merge k Sorted Lists 질문 드립니다.
21.03.13 01:00 작성 조회수 138
1
안녕하세요 강사님.
우선순위 큐 관련 질문 드립니다.
아래 코드와 같이 ListNode 배열 객체인 listNode 를
오름차순으로 설정한 우선순위 큐 에 셋팅(offer) 을 한 후
왜 아래 코드와 같이 다시 offer 를 하는지 궁금합니다.
이미 위 에서 offer 를 했기 때문에 다시 offer 를 하면 중복된 값이 들어가는게 아닌가 하는 생각이 들어서요.
답변 부탁드립니다.
감사합니다.
답변을 작성해보세요.
0
푸샵맨 코딩스터디
지식공유자2021.03.14
안녕하세요~
답변이 늦어 죄송합니다.
pq에 계속 넣어서 heapy를 거치는 과정입니다. pq과 알아서 제일 작은값을 위에다가 올려주는거죠
그걸 새로운 결과값을 저장할 ListNode p를 생성해서 담아주는 과정입니다.
이해가 안되실거 같아서 그림을 그렸습니다.
이 내용도 업데이트 하는과정에 넣도록 하겠습니다. (강의에 존대말을 안쓴부분은 업데이트중입니다)
이해가 안되시면 답글 달아주세요. 절대 부담 갖지마시고 넣어주세요
ListNode, PriotyQueue는 시험에 무조건 나옵니다. 개념 꼭 아셔야 합니다.특히 heapy과정
업데이트중인데 우선순위에 넣도록하겠습니다.
illhumored
질문자2021.03.14
네 강사님. 답변 감사합니다.
답변 주신 내용에서 궁금한 내용이 있어서요.
Q1. 첫 번 째 스텝(답변의 2번 단계) queue.poll() 을 했을 경우
list1 이 맨 위에 위치하여 list 1의 뽑아지는것은 이해했는데요.
poll 전 >
ListNode list 1 = 1 -> 4 -> 5
poll 후 >
ListNode list 1 = 4 -> 5
저는 list1 이 통째로 빠진다고 생각했었는데
list1 의 첫 번째 값(1) 만 빠지는 건가요?
푸샵맨 코딩스터디
지식공유자2021.03.19
안녕하세요~
질문을 지금 봤네요(제가 답변한 글에 질문이 달리면 표시가 저한테는 안오네요 ㅜㅜ)
질문주신내용
저는 list1 이 통째로 빠진다고 생각했었는데
list1 의 첫 번째 값(1) 만 빠지는 건가요?
네 통째로 다 빠지는게 아니고 1만 빠집니다. 그 상태에서 pq에 다시 넣잖아요
1-4-5에서 1일 빼버리고 4-5를 넣는겁니다.
많은분들이 헷갈리시는게 1-4-5, 4-5 둘다 타입이 ListNode입니다.
ListNode안에 next로 다시 넘어가서 그렇지 타입 자체가 ListNode입니다.
이걸 헷갈려서 그러실거여요..그래서 제가 강의에서 그림을 잘 보시면 하나 빼고
next로 넘기는데 그 타입들이 ListNode입니다. 디버깅을 잘 해보세요
질문을 지금 봤네요(제가 답변한 글에 질문이 달리면 표시가 저한테는 안오네요 ㅜㅜ)
질문주신내용
저는 list1 이 통째로 빠진다고 생각했었는데
list1 의 첫 번째 값(1) 만 빠지는 건가요?
네 통째로 다 빠지는게 아니고 1만 빠집니다. 그 상태에서 pq에 다시 넣잖아요
1-4-5에서 1일 빼버리고 4-5를 넣는겁니다.
많은분들이 헷갈리시는게 1-4-5, 4-5 둘다 타입이 ListNode입니다.
ListNode안에 next로 다시 넘어가서 그렇지 타입 자체가 ListNode입니다.
이걸 헷갈려서 그러실거여요..그래서 제가 강의에서 그림을 잘 보시면 하나 빼고
next로 넘기는데 그 타입들이 ListNode입니다. 디버깅을 잘 해보세요
단위가 ListNode니까 pq에서 다시 heapy과정을 거치면서 오름차순으로 해주면서 빼주는거죠
답변 1