rueki
BOJ 1715. 카드 정렬하기 (Priority Queue) 본문
728x90
반응형
https://www.acmicpc.net/problem/1715
카드의 개수가 최소인 것끼리 더해나가는 것이 가장 최적의 해를 구할 수 있는 방법이다.
우선순위 큐를 사용하여 차례대로 뽑는 방식을 사용
문제의 예시로는 카드가 순서대로 10, 20, 40 이렇게 입력된다.
1. 10 + 20
2. (10 + 20) + 40
import queue
card_queue = queue.PriorityQueue()
n = int(input())
for _ in range(n):
card_num = int(input())
card_queue.put(card_num)
s = 0
while card_queue.qsize() > 1:
temp1 = card_queue.get()
temp2 = card_queue.get()
card_queue.put(temp1+temp2)
s += (temp1+temp2)
print(s)
Queue에 데이터 넣기 : put
Queue에 데이터 뽑기 : get
Queue size : qsize
Queue 비어있는지 확인 : empty
* 임의로 막 넣었을 때 어떤 값이 가장 먼저 뽑히는지 확인
import queue
card_queue = queue.PriorityQueue()
n = int(input())
for _ in range(n):
card_num = int(input())
card_queue.put(card_num)
print(card_queue.get())
20, 10, 40 순으로 넣었을 때 10이 제일 먼저 뽑히는 것을 확인할 수 있다.
728x90
반응형
'python' 카테고리의 다른 글
BOJ 1531. 투명 (구현) (0) | 2022.10.02 |
---|---|
BOJ 1931. 회의실 배정(Greedy) (1) | 2022.10.01 |
이미지 경로 전처리 및 레이블링 코드 (0) | 2021.06.06 |
CutMix 실습하기 (0) | 2021.05.07 |
파이썬 UnderScore (0) | 2021.01.07 |
Comments