풀이특징
from collections import deque
import copy
n = int(input())
graph = [[] for _ in range(n)]
indegree = [0] * n
time = [0] * n
for i in range(n):
inputs = list(map(int, input().split()))
time[i] = inputs[0]
for j in inputs[1:-1]:
graph[j-1].append(i)
indegree[i] += 1
def topology_sort():
q = deque()
result = copy.deepcopy(time)
for i in range(n):
if indegree[i] == 0:
q.append(i)
while q:
now = q.popleft()
for node in graph[now]:
result[node] = max(result[node], result[now] + time[node])
indegree[node] -= 1
if indegree[node] == 0:
q.append(node)
return result
result = topology_sort()
for t in result:
print(t)
풀이특징
# 떠날 수 있는 그룹 수의 최댓값
n = int(input())
array = list(map(int, input().split()))
array.sort()
result = 0 # 총 그룹의 수
count = 0 # 현재 그룹에 포함된 모험가의 수
for i in array:
count += 1
if count >= i:
result += 1
count = 0
print(result)
풀이특징
# 만들어질 수 있는 가장 큰 수
nums = input()
result = int(nums[0])
for i in range(1, len(nums)):
num = int(nums[i])
if result <= 1 or num <= 1:
result += num
else:
result *= num
print(result)