반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 지연연산
- EMR 구조
- lazy evaluation
- 데이터엔지니어링
- 프로그래머스힙
- ORACLE MSSQL차이
- 서버간 복사
- 실행엔진
- Spark 최적화
- ORACLE문법
- freenom
- 프로그래머스 큰 수 만들기
- 데이터베이스복사
- Catalyst Optimizer
- Spark
- Databricks
- 하둡
- 문맥교환
- 빌드도구
- 하둡2.0
- 데이터 수집
- 런타임데이터영역
- 데이터파이프라인
- kafka 설치
- AWS Crawler
- 하둡에코시스템
- 스파크
- 프로그래머스
- 하둡1.0
- 카프카
Archives
- Today
- Total
띵유로그
[프로그래머스][힙]이중우선순위큐 본문
반응형
def solution(operations):
answer = []
heap=[]
max_heap=[]
import heapq
for op in operations:
if op.split(" ")[0]=='I':
num=int(op.split(" ")[1])
heapq.heappush(heap,num)
heapq.heappush(max_heap,-num)
else:
if op.split(" ")[1]=='-1' and len(heap)!=0:
heapq.heappop(heap)
elif op.split(" ")[1]=='1' and len(heap)!=0:
heapq.heappop(max_heap)
max_heap=[-1*i for i in max_heap]
heap=list(set(heap).intersection(set(max_heap)))
max_heap=list(set(max_heap).intersection(set(heap)))
max_heap=[-1*i for i in max_heap]
heapq.heapify(heap)
heapq.heapify(max_heap)
if len(heap)==0:
answer=[0,0]
else:
answer.append(-max_heap[0])
answer.append(heap[0])
return answer
겁나 비효율 적으로 풀었닼ㅋㅋㅋ
리스트에서 max값 빼는걸 생각을 못해서 min 힙, max힙 두개 구현했다.
최솟값 뺄때는 min에서 빼고, 최댓값 뺄때는 max에서 뺀후에 set으로 교집합을 구하고 다시 heap으로 만들었다,,,
최소힙만 구현하고 최댓값 뺄때는 heap.pop(max(heap))으로 하면 될것을,,,,
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스][완전탐색]카펫 (0) | 2020.09.09 |
---|---|
[프로그래머스][완전탐색]소수탐색 (0) | 2020.09.07 |
[프로그래머스][완전탐색]모의고사 (0) | 2020.09.06 |
[프로그래머스][정렬]H-Index (0) | 2020.09.06 |
[프로그래머스][정렬]가장 큰 수 (0) | 2020.08.28 |
Comments