본문 바로가기

프로그래머스 코딩테스트 연습 Lv1

Lv3 - [이중우선순위큐]

[문제 설명]

- I 수 -> 큐에 숫자 대입

- D 1 -> 큐에서 최댓값 삭제

- D -1 -> 큐에서 최솟값 삭제

- 위 세 명령어가 주어진 operations 배열.

- 모든 연산을 처리한 후

 1) 큐가 비었으면 [0,0]

 2) 큐에 값이 존재 하면 [최댓값, 최솟값] 리턴

 

[문제 풀이]

- 최소큐, 최대큐 두개 만들어서 인서트는 둘다 하고 뺄때는 각자 뺀다.

- 최대큐를 위한 꼼수로 부호 반대로 해서 만듬.

- 마지막에 둘의 교집합을 구하고 소트해서 출력

- 이를 위해 필요한 

 1) list(set(list1) & set(list2)) -->교집합
 2) list(set(list1) | set(list2)) --> 합집합

 3) list(set(list1) - set(list2)) --> 차집합

- split 안쓰고 그냥 i[2:] 했어도 됐을거 같다.

'프로그래머스 코딩테스트 연습 Lv1' 카테고리의 다른 글

Lv2 [더 맵게]  (0) 2022.01.17
Lv2 - 프린터  (0) 2022.01.11
Lv1 - 2016  (0) 2021.09.10
Lv2 - 타겟넘버  (0) 2021.09.06
Lv1 - 실패율  (0) 2021.09.06