본문 바로가기
코딩 테스트/do it! 알고리즘 코딩테스트

033 카드 정렬하기

by ornni 2024. 5. 28.
728x90
반응형

첫번째 코드

 

그리디 알고리즘을 이용하여 풀자!!

그리디 알고리즘을 queue를 이용해서 푸는 경우가 대부분이다! 그러므로 이 문제는 queue를 이용하자!

 

사실 처음에는 큐를 만들고 고민을 했다...

생각해보니까 이전에 PriorityQueue를 쓰면 알아서 정렬 된다는 것을 배웠었잖아!!

근뎅....queue와 PriorityQueue의 사용되는 함수들이 다르다는 것을 알았다....

 

그래서 책을 참고해서 작성했다!

 

import sys
input = sys.stdin.readline
from queue import PriorityQueue

n = int(input())
queue = PriorityQueue()

for i in range(n):
    queue.put(int(input()))

a = 0
b = 0
sum = 0

while queue.qsize() > 1:
    a = queue.get()
    b = queue.get()
    new = a + b
    queue.put(new)
    sum += new

print(sum)

 

통과!

PriorityQueue와 관련된 함수들을 정리해야겠다


링크

https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Gold/1715.%E2%80%85%EC%B9%B4%EB%93%9C%E2%80%85%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0

 

programmers/백준/Gold/1715. 카드 정렬하기 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글

035 회의실 배정  (0) 2024.05.30
034 수 묶기  (0) 2024.05.28
031 K번째 수 (미해결)  (0) 2024.05.23
032 동전 0  (0) 2024.05.23
030 기타 레슨  (0) 2024.05.21