728x90
https://programmers.co.kr/learn/courses/30/lessons/43238
코딩테스트 연습 - 입국심사
n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한
programmers.co.kr
1. left와 right 값 정의
2. left와 right을 적절히 자르고 최적의 mid값을 찾도록 코드를 만든다.
코드 :
def solution(n, times):
answer = 0
left, right = 1, max(times) * n
# right은 가장 오래걸리는 심사관에게 모두 받을 경우의 시간
while left <= right :
mid = (left + right) // 2
people = 0
for time in times :
people += mid // time
if people >= n : # 이미 해야할 사람보다 더 많이 심사한다면
break
if people >=n : # 심사한 사람이 많다 -> 시간을 줄인다.
answer = mid
right = mid -1
else : # 심사한 사람이 더 적다 -> 시간을 늘린다.
left = mid +1
return answer
배운점 :
1. 이분탐색의 구현
겨울에 진행했던 스터디를 괜히 한건 아닌가보다.
새록새록 기억난다.
참고 블로그 :
https://sohee-dev.tistory.com/123
[프로그래머스] 입국심사 (Python) / 이분탐색
문제 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시
sohee-dev.tistory.com
복습 :
✅ 20220618
✅ 20220621
✅ 20220623
✅ 20220624
✅ 20220626
반응형
'알고리즘 > 프로그래머스문제풀이' 카테고리의 다른 글
[Python/프로그래머스]전화번호 목록_해시 (0) | 2022.06.14 |
---|---|
[Python/프로그래머스]완주하지 못한 선수 _해시 (0) | 2022.06.14 |
[Python/프로그래머스]정수 삼각형 _DP (0) | 2022.06.14 |
[Python/프로그래머스]N으로 표현 _DP (0) | 2022.06.14 |
[Python/프로그래머스]가장 먼 노드_그래프(BFS) (0) | 2022.06.11 |