import sys
from functools import reduce
def solution(n, times):
maximum, minimum = sys.maxsize, 1
cur = (maximum + minimum) // 2
while True:
if reduce(lambda acc, i: acc + cur//i, times, 0) >= n:
maximum = cur
else:
minimum = cur
tmp = cur
cur = (maximum + minimum) // 2
if tmp == cur:
break
return cur + 1
처음봤을땐 이게 뭐지.. 싶었는데 공부하고 다시 오니 정말 간단한 이분탐색문제다