프로그래머스 이중우선순위큐 코드 및 해설 (파이썬)
2021. 6. 1. 15:38ㆍalgorithm
반응형
https://programmers.co.kr/learn/courses/30/lessons/42628
operate 함수를 통해 각 명령어를 식별하고, 삽입의 경우 리스트 맨 뒤에 숫자를 삽입, 최댓값 및 최솟값은 max, min 함수를 사용하고 remove를 통해 삭제했습니다.
(지금 생각해보니 만약에 최댓값이나 최솟값이 2개 이상이면 어떻게 해야 하는지 문제에 설명을 안 했네요?! 그냥 하나만 삭제하는 걸까요)
for 문을 통해 각 명령어를 차례로 이행해주고, 큐가 비어있는 경우 [0,0]을, 아닌 경우 max, min 함수를 이용해 [최댓값, 최솟값]을 반환했습니다.
def operate(q, operation):
# 삽입
if operation.startswith('I'):
num = int(operation.split()[-1])
q += [num]
# 최댓값 삭제
elif operation == 'D 1':
if q:
q.remove(max(q))
# 최솟값 삭제
else:
if q:
q.remove(min(q))
return q
def solution(operations):
q = []
for operation in operations:
q = operate(q, operation)
# 큐가 비어있는 경우
if not q:
return [0,0]
return [max(q), min(q)]
반응형
'algorithm' 카테고리의 다른 글
프로그래머스 오픈채팅방 코드 및 해설 (파이썬) (0) | 2021.06.01 |
---|---|
프로그래머스 체육복 코드 및 해설 (파이썬) (0) | 2021.06.01 |
프로그래머스 후보키 코드 및 해설 (파이썬) (0) | 2021.06.01 |
프로그래머스 예상 대진표 코드 및 해설 (파이썬) (0) | 2021.06.01 |
프로그래머스 크레인 인형뽑기 코드 및 해설 (파이썬) (0) | 2021.06.01 |