카드 정렬하기 3

백준(JAVA) 1715번 카드 정렬하기 풀이

Java로 구현한 1715번 카드 정렬하기 문제 풀이입니다. https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); PriorityQueue pq = new P..

백준(Python) 1715번 카드 정렬하기 풀이

Python으로 구현한 1715번 카드 정렬하기 문제 풀이입니다. https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net import heapq n = int(input()) heap = [] for _ in range(n) : heapq.heappush(heap, int(input())) if n == 1 : print(0) else : total = 0 while len(heap) > 1 : # 가장 작은 두개의 값 꺼내기 pop_1..

[정렬] 이코테 (파이썬) 카드 정렬하기 풀이

[문제] 정렬된 두 묶음의 숫자 카드가 있을 때 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A + B번의 비교를 해야 합니다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요합니다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있습니다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라집니다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합친 30장 묶음과 40장을 합친다면 (10 + 20) + (30 + 40) = 100번의 비교가 필요합니다. 그러나 10장과 40장을 합췬 뒤, 합친 50장 묶음과 20장을 합친다면 (10 + 40) + (50..