728x90
반응형
문제 출처 :
1927번: 최소 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
11279번: 최대 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가
www.acmicpc.net
문제 풀이 :
- 파이썬에서는 heap 모듈을 기본 라이브러리로 제공해준다.( 이건 기본 코딩테스트에서는 쓸 수 있다. 빡고수님들은 직접 구현해서 쓰시겟지만 나는...)
- 기본 모듈에선 최소힙만을 제공해주는데 그 이유는 사실 최대힙은 따로 구현하지 않아도 최소 힙에 값을 -붙여서 반전으로 넣어줌으로써 간단히 사용할 수 있기 때문이다.
- 사용법은 다음 블로그를 참고햇다.
최소힙
import heapq
import sys
n= int(sys.stdin.readline())
heap =[]
for i in range(n):
temp = int(sys.stdin.readline())
if temp ==0:
if(len(heap)==0):
print(0)
else:
print(heapq.heappop(heap))
else:
heapq.heappush(heap,temp)
최대힙
import heapq
import sys
n= int(sys.stdin.readline())
heap =[]
for i in range(n):
temp = int(sys.stdin.readline())
if temp ==0:
if(len(heap)==0):
print(0)
else:
a= heapq.heappop(heap)
print(-a)
else:
heapq.heappush(heap,-temp)
반응형
'Computer Science > Algorithm' 카테고리의 다른 글
[백준] 11286 - 절대값 힙 (Python) (0) | 2021.04.09 |
---|---|
[백준] 2512 - 예산 (Python) (0) | 2021.04.09 |
[백준] 1656 - 랜선 자르기 (Python) (0) | 2021.04.02 |
[백준] 2805 - 나무 자르기(Python) (0) | 2021.04.02 |
[백준] 2869 - 달팽이는 올라가고 싶다 (Python) (0) | 2021.04.02 |