Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[백준] 17503 맥주 축제 [Python, 파이썬] 본문
- 문제 : https://www.acmicpc.net/problem/17503
- 🔑 이분 탐색
- 맥주 종류를 선호도 기준으로 내림차순 정렬
- mid값 (간 레벨)을 기준으로 정해진 개수만큼 맥주를 마시고 선호도를 채울 수 있는지를 확인
- 만족한다면 mid값을 계속 낮춰보고 최솟값을 찾으면 끝 ✨
import sys
input = sys.stdin.readline
n, m, k = map(int, input().split())
bear = [list(map(int, input().split())) for _ in range(k)]
bear.sort(reverse=True)
l = 0
r = 2**31
while l <= r:
mid = (l+r) // 2 # 간 레벨
sum_p = 0 # 먹은 맥주 선호도 합
drink = 0 # 먹은 횟수
for p, level in bear:
if mid >= level: # 간 레벨 >= 도수
sum_p += p
drink += 1
if drink == n: # 먹을 만큼 먹었으면 그만 먹어
break
if sum_p >= m and drink == n: # 선호도, 먹은 횟수 만족하면 값 줄여보기
r = mid - 1
else:
l = mid + 1
if r != 2**31:
print(l)
else:
print(-1)'백준' 카테고리의 다른 글
| [에라토스테네스의 체] 소수를 찾는 방법 중 하나 [Python, 파이썬] (0) | 2023.11.09 |
|---|---|
| [백준] 1600 말이 되고픈 원숭이 [Python, 파이썬] (0) | 2023.11.08 |
| [백준] 2212 센서 [Python, 파이썬] (0) | 2023.11.05 |
| [백준] 16954 움직이는 미로 탈출 [Python, 파이썬] (0) | 2023.11.04 |
| [백준] 1654 랜선 자르기 [Python, 파이썬] (1) | 2023.11.03 |
Comments