프로그래머스 파이썬 입국심사 프로그래머스 입국심사 파이썬 파이썬 프로그래머스 입국심사 파이썬 입국심사 프로그래머스 입국심사 프로그래머스 파이썬 입국심사 파이썬 프로그래머스
입국심사
https://programmers.co.kr/learn/courses/30/lessons/43238
문제 단순화
- n 정수와 times 정수 리스트가 있다.
- times의 각 요소는 한 사람을 처리하는 시간을 나타낸다.
- times의 모든 요소를 사용하여 n명의 사람을 처리할 때, 걸리는 최소 시간을 리턴한다.
문제풀이
- min(times)n, max(times)n을 최소값, 최댓값으로 둔다.
- 걸리는 시간을 이분탐색하여, 결과를 리턴한다.
팁
- left, right 분기 조건에 주의한다.
- 분기 조건이 이상, 이하일 때는 mid값을 준다. (결과가 mid일 경우가 있기 때문에)
코드
def solution(n, times):
answer = 0
left = min(times)
right = max(times)*n
while left < right:
mid = (left+right)//2
print(left,right,mid)
num_complete = 0
for time in times:
num_complete += mid//time
if num_complete < n:
left = mid + 1
else:
right = mid
answer = right
return answer
'프로그래머스' 카테고리의 다른 글
프로그래머스 가장 먼 노드 파이썬 (0) | 2021.09.17 |
---|---|
프로그래머스 징검다리 파이썬 (0) | 2021.09.16 |
프로그래머스 여행경로 파이썬 (0) | 2021.09.16 |
프로그래머스 단어 변환 파이썬 (0) | 2021.09.16 |
프로그래머스 타겟 넘버 파이썬 (0) | 2021.09.15 |