*문제 출처는 프로그래머스에 있습니다.
문제 제목: 이중우선순위큐 (3단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/42628
문제 설명
나의 풀이
import heapq
def solution(operations):
answer = []
heap = []
for i in operations:
pr, data = i.split()
data = int(data)
if pr == 'I':
heapq.heappush(heap, data)
elif pr == 'D' and data == 1:
if heap:
max_value = max(heap)
heap.remove(max_value)
else:
if len(heap) != 0:
heapq.heappop(heap)
if heap:
answer = [max(heap), heapq.heappop(heap)]
else:
answer = [0, 0]
return answer
힙에 대하여 알고 있는지 물어보는 문제였다.
※ 알아야 할 것
heapq.heappush, heapq.heappop을 통해서 원소를 제거하면서 heap의 자료구조가 heap인줄 알았다. 근데 풀다보니 그냥 heap(자료이름)의 자료 형태는 list였다. 그래서 list에서 사용할 수 있는 메소드들을 모두 사용할 수 있다는 사실을 알게되었다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-Python' 카테고리의 다른 글
Programmers / 야근 지수 / Python (0) | 2024.05.03 |
---|---|
Programmers / 단어 변환 / Python (0) | 2024.04.16 |
Programmers / 124 나라의 숫자 / Python (0) | 2024.04.11 |
Programmers / 점 찍기 / Python (0) | 2024.04.09 |
Programmers / 가장 큰 수 / Python (0) | 2024.04.08 |