[Coding Test]
[백준] 17503 파이썬(python) : 맥주 축제
https://www.acmicpc.net/problem/17503 17503번: 맥주 축제 첫 번째 줄에 축제가 열리는 기간 N (1 ≤ N ≤ 200,000) 과, 채워야 하는 선호도의 합 M (1 ≤ M = preference: find = True print(now_alch) break else: #7 prefer_sum -= heapq.heappop(heap) if not find: #8 print(-1) #1 : 선호도와 도수를 저장할 리스트 생성 #2 : 도수가 낮은 순서대로 도수가 같다면 선호도가 낮은 순서대로 정렬 #3 : heap 자료구조에 선호도를 삽입 #4 : 선호도 누적 합 #5 : 현재의 도수 #6 : heap에 맥주가 날짜만큼 쌓였으면 선호도가 기준치를 넘는지 확인하고 넘는다면..
[백준] 14235 파이썬(python) : 크리스마스 선물
https://www.acmicpc.net/problem/14235 14235번: 크리스마스 선물 크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세계를 돌아댕기며 착한 아이들에게 선물을 나눠줄 것이다. 하지만 www.acmicpc.net import sys, heapq n = int(sys.stdin.readline()) heap = [] for _ in range(n): gift = list(map(int, sys.stdin.readline().split())) #1 if gift[0] == 0: #2 if heap: #3 print(abs(heapq.heappop(heap))) elif not heap: #4 print(-1) ..
[백준] 19638 파이썬(python) : 센티와 마법의 뿅망치 - 최대 힙 활용문제
https://www.acmicpc.net/problem/19638 19638번: 센티와 마법의 뿅망치 마법의 뿅망치를 센티의 전략대로 이용하여 거인의 나라의 모든 거인이 센티보다 키가 작도록 할 수 있는 경우, 첫 번째 줄에 YES를 출력하고, 두 번째 줄에 마법의 뿅망치를 최소로 사용한 횟수 www.acmicpc.net import sys, heapq n, h, t = map(int, sys.stdin.readline().split()) giant = [ -1*int(sys.stdin.readline()) for _ in range(n) ] #1 heapq.heapify(giant) #2 cnt = 0 for _ in range(t): tmp = heapq.heappop(giant) #3 if abs..
[백준] 15903 파이썬(python) : 카드 합체 놀이
https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net import sys, heapq n, m = map(int, sys.stdin.readline().split()) heap = list(map(int, sys.stdin.readline().split())) #1 heapq.heapify(heap) #2 for _ in range(m): n1 = heapq.heappop(heap) #3 n2 = heapq.he..
[백준] 2075 파이썬(python) : N번째 큰 수 - heapq
https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 파이썬에서 제공하는 heapq와 입력값이 NxN으로 들어온다는 것을 활용하여 푸는 문제다. 파이썬 heapq는 최소 힙을 제공하기 때문에 한 줄을 입력받고 heapq에 push하면 최소 값이 heap[0]에 정렬된다. 두번째 줄부터 입력값과 heap[0]을 계속 비교하면서 heap[0]가 작으면 빼고 입력값을 넣는 과정을 반복하면 자연스럽게 5개의 가장 큰 숫자들만 남게 된다. (비교하고 삽입, 삭제하는..
[백준] 1417 파이썬(python) : 국회의원 선거
https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net import sys n = int(sys.stdin.readline()) vote_people = [ int(sys.stdin.readline()) for _ in range(n) ] dasom = vote_people[0] #1 candidate = vote_people[1:] #2 if n == 1: #3 print(0) else: #4 cnt = 0 candidate.sort(re..