파이썬
import sys
input = sys.stdin.readline
lw = []
n = int(input())
for i in range(n):
lw.append(int(input()))
lw.sort()
for i in range(n):
lw[i] *= (n - i)
lw.sort()
print(lw[-1])
핵심 개념과 풀이 흐름을 짧고 선명하게 정리했습니다.
import sys
input = sys.stdin.readline
lw = []
n = int(input())
for i in range(n):
lw.append(int(input()))
lw.sort()
for i in range(n):
lw[i] *= (n - i)
lw.sort()
print(lw[-1])
import sys
input = sys.stdin.readline
def bfsTree(tree, i):
root = len(tree)//2
if i == 0:
l.append(tree[root])
return
bfsTree(tree[:root], i-1)
bfsTree(tree[root+1:], i-1)
l= []
k = int(input())
cbTree = list(map(int, input().split()))
for i in range(k):
bfsTree(cbTree, i)
for _ in range(len(l)):
print(l.pop(0), end=" ")
print()