반응형
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
- 데이터베이스복사
- 데이터 수집
- kafka 설치
- Spark 최적화
- 하둡2.0
- lazy evaluation
- 지연연산
- Databricks
- 카프카
- AWS Crawler
- 하둡1.0
- 빌드도구
- 프로그래머스힙
- Spark
- ORACLE MSSQL차이
- 하둡
- 데이터엔지니어링
- 런타임데이터영역
- 데이터파이프라인
- 스파크
- Catalyst Optimizer
- ORACLE문법
- 서버간 복사
- 프로그래머스
- 문맥교환
- freenom
- 프로그래머스 큰 수 만들기
- 실행엔진
- EMR 구조
- 하둡에코시스템
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