-
[Python] programmers 입국심사알고리즘/문제풀이 2021. 12. 4. 23:34728x90
1. 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/43238
2. 문제 요약
모든 사람이 심사를 받는데 걸리는 시간 최솟값 구하기
3. 아이디어 정리
- 이분 탐색을 통해 걸리는 예측 시간을 구한다.
- 해당 예측 시간으로 몇 명이 허용되는지 확인
- 허용 가능한 인원으로 left, right 값을 조절
4. 문제 풀이
4-1. 내 풀이
def solution(n, times): answer = 0 left = 0 right = max(times) * n while left <= right: mid = (left + right) // 2 # 걸리는 예측 시간 all_ = 0 # 해당 시간 동안 몇 명이 허용되는지 확인 for time in times: all_ += mid // time if all_ < n: left = mid + 1 elif all_ >= n: answer = mid right = mid - 1 return answer
5. 결론
- 이분 탐색
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] 백준 15656 N과 M (7) (0) 2021.12.12 [Python] programmers 뉴스 클러스터링 (0) 2021.12.04 [Python] programmers 교점에 별 만들기 (0) 2021.11.27 [Python] 백준 21921 블로그 (0) 2021.11.27 [Python] 백준 12865 평범한 배낭 (0) 2021.11.27