359 (실버4) 문제
n = int(input())
arr = []
for _ in range(n):
arr.append(list(input().split()))
arr.sort(key = lambda x:(-int(x[1]), int(x[2]), -int(x[3]), x[0]) )
for k in arr:
print(k[0])
360 (실버3) 문제 실패
n = int(input())
arr = list(map(int, input().split()))
arr.sort()
print(arr[(n-1)//2])
361 (레벨1) 문제
def solution(n, stages):
answer = []
cnt = len(stages)
for i in range(1, n+1):
if (cnt == 0):
answer.append([0, i])
else:
temp = stages.count(i)/cnt
answer.append([temp, i])
cnt = cnt - stages.count(i)
answer.sort(key = lambda x:x[0], reverse=True)
arr = []
for j in range(n):
arr.append(answer[j][1])
return arr
363 (골드4) 문제
import heapq
n = int(input())
ssum = 0
arr = []
for _ in range(n):
heapq.heappush(arr, int(input()))
while (len(arr) > 1):
one = heapq.heappop(arr)
two = heapq.heappop(arr)
temp = one + two
heapq.heappush(arr, temp)
ssum = ssum + temp
print(ssum)
힙 자료구조를 사용했다.
1. 최솟값 두개를 리스트에서 꺼내고, 합을 ssum에 더해준다. 그리고 arr에 넣어준다.
2. while문 반복해서 길이가 1이 되면 종료한다.