Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- React
- level3
- Redux
- 블로그 뉴비
- 고고학 최고의 발견
- 꿀팁 환영
- apk 빌드
- Dreamhack
- 티스토리챌린지
- 드림핵
- 개발
- web-view
- url 랜더링
- 부산 맛집 OPEN API
- 프로그래머스
- 오블완
- 훈수 가능
- API 활용 신청
- 창업 300
- expo
- 새로고침
- python
- redux state값 유지
- php-1
- react-router-dom
- 공공데이터 포털
- 보안
- 코딩테스트
- 사업계획서
Archives
- Today
- Total
1223v
[Progammers] Python 프로그래머스 입국심사(43238) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/43238
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
아주 최악의 상황을 고려해도 최대 시간 * 사람 수 내에 다 들어옴으로 end = 최대 시간 * 사람 수
시작은 1
중간값(정답 시간)을 배열 내 시간으로 나누면 그 시간에 들어갈 수 있는 인원의 총 수가 나온다.
그 값이 기존 사람수보다 많다면 값이 너무 커 사람이 많이 들어온 것이므로 end값을 줄인다.
만약 그 값이 기존 사람 수 보다 적다면, 값이 너무 작아 사람이 많이 못들어온 것이므로 start 값을 높인다.
def solution(n, times):
answer = 0
start = 1
end = max(times) * n
while start <= end:
mid = int((start + end) / 2)
result = 0
for i in times:
result += mid // i
if result >= n:
break
if result >= n:
answer = mid
end = mid - 1
else:
start = mid + 1
return answer
회고.
사람 수(N)가 정해져 있어서 N값을 비교해 최소 시간을 탐색하는 비교문을 구성하는게 아직 미흡한 것 같다...
728x90
'PS' 카테고리의 다른 글
[Progammers] Python 프로그래머스 모음사전(84512) (0) | 2024.11.03 |
---|---|
[BOJ] Python 백준 알고리즘 수업 - 너비 우선 탐색 1(24444) (0) | 2024.11.01 |
[BOJ] Python 백준 징검다리(11561) (0) | 2024.10.29 |
[BOJ] Python 백준 게임(1072) (1) | 2024.10.28 |
[프로그래머스] Lv.1 의상 (0) | 2023.08.03 |