[문제 설명]
- 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 |