반응형 그리디3 [백준][Python] 1715번 카드 정렬하기 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 코드 import heapq import sys n = int(input()) h = [] for _ in range(n): num = int(sys.stdin.readline()) heapq.heappush(h,num) if n == 1: print(0) exit() answer = 0 while len(h)>1: a = heapq.heappop(h) b = heapq.heappop(h) sum = a+b answer+=sum heapq.heap.. 2022. 5. 4. [백준][Python] 13975번 파일 합치기 3 13975번: 파일 합치기 3 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데, www.acmicpc.net 코드 import heapq import sys t = int(input()) for _ in range(t): k = int(input()) n_list = list(map(int,sys.stdin.readline().split())) heapq.heapify(n_list) if k == 1: print(n_list[0]) break answer = 0 while len(n_list)>1: a = heapq.heappop(n_list) b = heapq.he.. 2022. 5. 3. [백준][Python] 19598번 최소 회의실 개수 19598번: 최소 회의실 개수 2개 회의실로 3개 회의를 모두 진행할 수 있다. 예를 들어, 첫번째 회의실에서 첫번째 회의를 진행하고 두번째 회의실에서 두번째 회의와 세번째 회의를 진행하면 된다. 1개 회의실로 3개 회의 www.acmicpc.net 코드 import sys import heapq n = int(input()) time = [] for _ in range(n): s,e = map(int,sys.stdin.readline().split()) time.append([s,e]) time.sort() heap = [] cnt = 1 heapq.heappush(heap, time[0][1]) for i in range(1,n): if time[i][0] >= heap[0]: heapq.heapp.. 2022. 4. 27. 이전 1 다음 반응형