반응형
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 설치
- 하둡2.0
- ORACLE문법
- lazy evaluation
- AWS Crawler
- Spark 최적화
- 문맥교환
- 카프카
- 런타임데이터영역
- 프로그래머스 큰 수 만들기
- 하둡에코시스템
- freenom
- 데이터 수집
- 하둡1.0
- Catalyst Optimizer
- 하둡
- 데이터베이스복사
- 스파크
- Databricks
- 실행엔진
- Spark
- ORACLE MSSQL차이
- 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