반응형 heapq4 [백준][Python] 15903번 카드 합체 놀이 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 코드 import heapq n,m = map(int,input().split()) n_list = list(map(int,input().split())) heapq.heapify(n_list) for _ in range(m): a = heapq.heappop(n_list) b = heapq.heappop(n_list) heapq.heappush(n_list,a+b) heapq.heappush(n_list,a+b) print(.. 2023. 1. 19. [백준][Python] 1655번 가운데를 말해요 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 코드 import heapq import sys left = [] right = [] n = int(input()) for _ in range(n): num = int(sys.stdin.readline()) if len(left) == len(right): heapq.heappush(left,-num) else: heapq.heappush(right,num) if right and right[0] < -left[0]: l = -heapq.heap.. 2023. 1. 5. [백준][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. 이전 1 다음 반응형