본문 바로가기

우선순위큐2

[python 백준 1715] 카드 정렬하기 📜 접근 방법 우선순위 큐를 활용 1. 힙에다 주어진 숫자들를 넣는다. 2. 만약 숫자가 1개만 주어지면 합칠것이 없으니 0 출력 후 종료 3. 힙에 숫자가 2개 이상일 경우 반복 1. 가장 작은 수 2개를 뽑은 후 그 숫자를 더한다. 2. 그 후 그 두 숫자를 더한 후 힙에 넣어준다. 4. 결과값 출력 ❌ 실패 이유 카드를 섞은 후 그 값도 포함시켜서 가장 작은 수를 찾아야하는데 그대로 더해서 최소값이 나오지 않았다. ✅ 정답 코드 import sys import heapq n = int(sys.stdin.readline()) heap = [] for i in range(n): heapq.heappush(heap, int(sys.stdin.readline())) if n == 1: print(0) el.. 2023. 2. 4.
[python 백준 6068] 시간 관리하기 접근 방법 최소 이 시간까지는 일을 시작해야한다! 그러기 위해선 마감시간이 제일 늦은 시간을 기준으로 일하는 시간을 차례대로 뺌 제일 마지막 마감 시간을 기준으로 수행 [(3, 5), (8, 14), (5, 20), (1, 16)] 으로 설명하자면 마감 시간을 기준으로 내림차순 [(20, 5), (16, 1), (14, 8), (5, 3)] 제일 늦은 마감 시간 가져온 후 일하는 시간 빼기 null null 그 다음 마감 시간 가져와서 비교 null 일하는 시간 빼기 null 그 다음 마감 시간 가져와서 비교 null 일하는 시간 빼기 null 그 다음 마감 시간 가져와서 비교 null 여기서 남은 시간(6)보다 마감 시간(5)이 빠를 경우 제 시간에 못하기 때문에 마감 시간을 기준으로 일할 시간(3)을.. 2023. 1. 9.