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
- 알고리즘
- 코딩테스트 준비
- Laravel
- Flutter
- 파이썬
- 뷰
- 파이썬 코테
- c++ 코테
- 개발자 취업
- 플러터
- 티스토리챌린지
- 코테
- 라라벨
- til
- ML
- 개발자취업
- 백준
- 코딩테스트
- C++
- 코딩테스트준비
- react
- flutter getx
- 오블완
- DP
- 99클럽
- 안드로이드
- 항해99
- 코테 파이썬
- vue
- Python
Archives
- Today
- Total
잡다로그
[Python/코테] 백준 13702 이상한 술집 본문
13702 이상한 술집
문제 및 조건 설명: https://www.acmicpc.net/problem/13702

알고리즘 설계
💡idea.
기준 용량을 찾아야 한다.
막걸리의 최대 용량이 2^31 -1로 범위가 크므로, 이분탐색을 이용해서 빠르게 적절한 용량을 찾아낼 수 있다.
🎲step.
이진 탐색을 진행해서 기준 용량을 찾아낸다.
알고리즘 구현
import sys
n, k = map(int, input().split())
arr = [int(sys.stdin.readline()) for _ in range(n)]
start = 1
end = max(arr)
result = 0
while (start <= end):
total = 0
mid = (start + end) // 2
for i in arr:
if i >= mid:
total += i // mid
if total < k:
end = mid - 1 # 새로운 값으로 다시 계산
else:
result = mid # 가능한 값 저장
start = mid + 1 # 더 큰 값으로도 가능한지 확인
print(result)
* 참고로, start = 0 으로 초기값을 두면 런타임 에러(ZeroDivisionError)가 발생한다. 막걸리의 용량은 0ml가 될 수 없기 때문 ~ !
나다어
- 출력해야 하는 값이 무엇인지 확인하면 의외로 코드를 어떻게 구성해야 하는지 감을 잡을 수 있다!
- 이진 탐색의 가장 기본적인 유형이다 (파라메트릭 서치). 아래 포스팅의 1번 예제 - 떡볶이 떡 만들기와 답안이 거의 동일하다.
2023.05.01 - [Algorithm] - [Python/코테] 이진 탐색 (Binary Search)
[Python/코테] 이진 탐색 (Binary Search)
이진 탐색 (Binary Search) 정렬된 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법. 탐색 범위를 지정해주어야 한다. 이진 탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용할
snowflower19.tistory.com
'Algorithm' 카테고리의 다른 글
| [Python/코테] 2024 Kakao Winter Internship - 2. 도넛과 막대 그래프 (0) | 2024.03.27 |
|---|---|
| [Python/코테] 2024 Kakao Winter Internship - 1. 가장 많이 받은 선물 (0) | 2024.03.26 |
| [Python/코테] 백준 2178 미로탐색 (0) | 2024.03.23 |
| [Python/코테] 그래프 (Graph) - 개념 (0) | 2024.01.06 |
| [Python/코테] 우선순위 큐 - 개념, 백준 예제 (0) | 2023.12.21 |
Comments