알고리즘/programmers

[Programmers 코딩테스트 고득점 Kit] 이중우선순위큐

꾸준함. 2021. 9. 23. 03:53

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42628

 

코딩테스트 연습 - 이중우선순위큐

 

programmers.co.kr

문제에서는 우선순위 큐 두 개를 사용하는 것을 원한 듯 하지만 set 자료구조를 이용하면 쉽게 풀 수 있는 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. set을 생성하고 명령어가 I인 경우 set에 숫자를 삽입합니다.

2. 명령어가 D인 경우 아래와 같은 절차를 따릅니다.

2.1 최댓값을 삭제할 경우 set의 제일 뒤 숫자를 삭제하고

2.2 최솟값을 삭제할 경우 set의 제일 앞 숫자를 삭제합니다.

3. operations 벡터를 전부 순회할 동안 1번과 2번 과정을 반복하고

4. set이 비어있을 경우 {0, 0}, 비어있지 않은 경우 { set 내 처음 숫자, set 내 마지막 숫자 }를 반환해줍니다.

 

 

개발환경:Visual Studio 2017

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형