-
[Python] 입국심사Algorithm/프로그래머스 2021. 6. 3. 02:52
1. 문제 📚
2. 입출력 예 📋
3. 알고리즘 ✅
코테의 이진 탐색 문제는 탐색범위가 큰 상황에서 탐색을 가정하는 문제가 많다.
따라서 탐색 범위가 클 경우 이진 탐색으로 문제에 접근해보자 !
1. 일을 하는 데 소요하는 시간 min, max 정하기
min = 1
max = 가장 오래 걸리는 심사대 * 일의 개수
2. 각 입국 심사대에서 처리 한 일들이 n의 값이 되는 지 확인해보기
각 입국 심사대에서 일한 개수 = mid // n
3. mid 값 조정하기
- mid / time 이 n의 값보다 크다면, mid를 줄인다.
- mid / time 이 n의 값보다 작다면, mid를 늘린다.
마지막 mid 값이 우리가 구하는 최소 값이 된다.
4. 소스코드 💻
def solution(n, times): start = 0 end = max(times) * n sorted(times) answer = 0 while start <= end: work = 0 mid = (start + end) // 2 for time in times: work += mid // time if work < n: start = mid + 1 else: end = mid - 1 answer = mid return answer
'Algorithm > 프로그래머스' 카테고리의 다른 글
[Python] 주차 요금 계산 (0) 2022.11.04 [Python] 단어 변환 (0) 2022.10.20 [Python] 로또의 최고 순위와 최저 순위 (0) 2021.05.05 [Python] 폰켓몬 (0) 2021.05.03 [Python] 2016년 (0) 2021.05.01