본문 바로가기
코테준비/하루한개도전~

99클럽 코테 스터디 8일차 TIL : 이중우선순위큐

by 움바둠바 2024. 7. 31.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/42628

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

https://usowelcome.tistory.com/10

 

99클럽 코테 스터디 3일차 TIL : 이중우선순위큐 (챌린저)

이중 우선순위큐를 구현하는 문제였다-> max, min 두개에 접근 가능한 자료구조 그냥 간단하게 heap을 두개 만들어서 구현했다.(max heap, min heap) 뭔가 더 간단하고 메모리효율이 좋은 방법이 있을것

usowelcome.tistory.com

이것도 풀어본문제 같아서 확인해보니, 저번기수 챌린저로 나왔던 문제였다.

가만보니 풀이방법도 똑같고...

 

사실 어제 우선순위큐를 알았다고 priority_que를 사용하려고 했었다.

근데 priority_queue는 특정 원소를 삭제하는 (erase, find)가 불가능했다.

그래서.. 그냥 heap만들기로 해결했다!

(push_heap으로 해주기만 하면, 굳이굳이 priority_que를 사용할 필요가 없어보인것도 있었다)

 

아무튼 그냥 큐라는 자료구조 자체가, 중간에 있는 원소를 건드리려고 하지 않을 때 사용하는게 좋을것같다.

오로지 push, pop만 필요할때... 이걸 사용하고

지금처럼 중간에 있는 원소에 접근하거나, 뭔갈 해야할 때는 vector에 heap을 적용해주는 방법이 오히려 더 직관적인것같다.

 

728x90