https://school.programmers.co.kr/learn/courses/30/lessons/12920

1) 코드
def solution(n, cores):
if n <= len(cores):
return n
else:
n -= len(cores)
left = 1
right = max(cores)*n
while left < right:
mid = (left+right) // 2
capacity = 0
for c in cores:
capacity += (mid // c)
if capacity >= n:
right = mid
else:
left = mid+1
for c in cores:
n -= (right-1) // c
for i in range(len(cores)):
if right % cores[i] == 0:
n -= 1
if n == 0:
return i+1
2) 해설
https://dev-note-97.tistory.com/173
이 블로그를 참고해서 풀었다