728x90
https://programmers.co.kr/learn/courses/30/lessons/43238
- 생각
- 시간이 주어질 때 심사 받을 수 있는 사람 수 구하기
- 시간 // 심사에 걸리는 시간
- 시간안에 정해진 인원을 다 처리하지 못한다면 시간 늘리기
- 이분 탐색
- 시간이 주어질 때 심사 받을 수 있는 사람 수 구하기
- 코드
# 시간이 num일 때 심사 받을 수 있는 사람 수 구하기
def cnt(num,times):
c = 0
for t in times:
# 각 입국심사대에서 시간 내에 처리 가능한 사람 수
c += num//t
return c
def solution(n, times):
times.sort()
l = 0
r = n*times[0]
while l < r:
mid = (l + r)//2
cc = cnt(mid,times)
# cc 시간 안에 모두 심사 못 함 -> 시간을 늘려야 함
if cc < n:
l = mid + 1
else:
r = mid
return r
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[프로그래머스] Lv.1 비밀지도 - Python (0) | 2022.06.30 |
---|---|
[프로그래머스] Lv.2 뉴스클러스터링 - Python (0) | 2022.06.30 |
[백준] 14500. 테트로미노 - Python (0) | 2022.06.29 |
[백준] 14499. 주사위 굴리기 - Python (0) | 2022.06.29 |
[백준] 12865. 평범한 배낭 - Python (0) | 2022.06.28 |
댓글