⭐️
def solution(n, times):
answer = 0
# Binary Search - 1 ~ worst case
left, right = 1, max(times) * n
while(left <= right):
mid = (left + right) // 2
passed = 0
# mid 시간동안 지나간 사람 수
for time in times:
passed += mid // time
if passed >= n:
break
# n보다 더 많은 사람이 지나갔을 경우
if passed >= n:
answer = mid
right = mid - 1
elif passed < n: # n명보다 더 적게 지나갔을 경우
left = mid + 1
return answer
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges