정렬
페이지
미리보기
정렬그리디 알고리즘수학
자세히 보기
백준 2217번

파이썬

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])
재귀트리
자세히 보기
백준 9934번

파이썬

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()
  • 이거 생각해 내는데 시간 오지게 쓰는데…
  • 재귀로 풀면 쉬울 것 같았는데.. 쉽지 않았다…