
문제 풀이
1. 사실 이거 힙큐를 써야되나 싶어서 그냥 단순 리스트로 풀었습니다. 파이썬 내부의 sort함수가 nlogn이라는 시간복잡도를 가지기 때문에 그냥 정렬하면서 해도 상관 없어요. 파이썬 만세
(i가 들어갈때마다 정렬하면 터질 수 있는데 D가 나올 때 정렬을 하면 터질 이유가 없습니다. 예전에 삼성 B형 문제도 이거랑 비슷했는데 제가 정렬하는 타이밍을 넣을때마다 해서 떨어진 경험이 있습니다... 여러분은 이런거 주의하세요)
2. I 인 경우 i[1:]을 int형으로 바꿔서 리스트에 삽입
3. D 인 경우 -1인지 1인지 판별, 리스트를 정렬 후 최댓값/최솟값 삭제
def solution(operations):
answer = []
for i in operations:
if i[0] == 'I':
answer.append(int(i[1:]))
answer.sort()
elif i[0] == 'D':
if not answer:
continue
elif i[2] == '1':
answer.pop()
else:
answer.pop(0)
if not answer:
return [0, 0]
else:
return [answer[-1], answer[0]]반응형
'프로그래머스 - Python > 알고리즘 고득점 Kit' 카테고리의 다른 글
| 알고리즘 고득점 Kit - 해시 - 전화번호 목록 (0) | 2025.06.11 |
|---|---|
| 프로그래머스 알고리즘 고득점 Kit - 해시 - 폰켓몬 (0) | 2025.06.11 |
| 정렬 - K번째 수 (0) | 2025.06.11 |
| 알고리즘 고득점 Kit - 힙 큐 - 더 맵게 (0) | 2025.06.09 |
| [프로그래머스 코딩테스트 고득점 Kit] 스택 / 큐 문제 (1) | 2025.06.01 |