recursion = int(input())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
def q(recursion,cnt):
print(cnt * "____" + "\"재귀함수가 뭔가요?\"")
if recursion <= 0:
print(cnt * "____" + "\"재귀함수는 자기 자신을 호출하는 함수라네\"")
else:
print(cnt * "____" + "\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.")
print(cnt * "____" + "마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.")
print(cnt * "____" +"그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"")
q(recursion - 1, cnt + 1)
print(cnt * "____" + "라고 답변하였지.")
q(recursion, 0)
def solution(bridge_length, weight, truck_weights):
# sum(다리를 건너는 트럭) + truck_weights[0] 가 weight이 안넘으면
# 다리를 건너는 트럭.append(truck_weights[0])
# 다리를 건너는 트럭[0][1] 을 시간이 지날때 마다 += 1 해줌
# 다리를 건너는 트럭[0][1] 이 weight보다 크거나 같으면
# 다리를 건너는 트럭[0] 을 다리를 지난 트럭으로 이동
# 위 과정을 반복
time = 0
truck_weights = list(map(lambda x : [int(x),0],truck_weights)) #1
current_bridge = []
while True:
time += 1
current_bridge = list(map(lambda x : [x[0],x[1] + 1],current_bridge)) #2
if len(current_bridge) > 0:
if current_bridge[0][1] > bridge_length: # 3
del current_bridge[0]
if len(truck_weights) > 0:
if sum(map(lambda x : x[0] ,current_bridge)) + truck_weights[0][0] <= weight: # 4
truck = truck_weights.pop(0)
current_bridge.append([truck[0],truck[1] + 1])
if len(current_bridge) + len(truck_weights) <= 0:
break
return time
#1
truck_weights 의 데이터 구조를 [무게, 현재 위치] 구조로 잡음 현재 위치 : 다리를 어느정도 건넜는가 (대기 상태이면 0)