Search
Duplicate

도토리 숨기기

주차
23
문제번호
15732
언어
Python
티어
골드
유형
이분탐색
nj_Blog
nj_상태
이해도
풀이
사람
이해도 2
13 more properties

Memo

로직 설명

모든 규칙에 대해서 배열에 누적해서 값을 저장하면 시간초과가 난다는 판단이 섰습니다.
상자의 위치를 기준으로 이분탐색을 돌립니다. mid값을 정했을때 숨길 수 있는 도토리 갯수를 구하여 이분탐색을 진행합니다.

Code

제출 날짜

@6/12/2021
import sys N, K, D = map(int, sys.stdin.readline().split()) li = [list(map(int, sys.stdin.readline().split())) for _ in range(K)] left = 1 right = 1000000 while (left <= right): mid = (left + right) // 2 cnt = 0 for i in range(K): start, end, interval = li[i] if (mid < start): continue elif (start <= mid and mid <= end): cnt += (mid - start) // interval + 1 else: cnt += (end - start) // interval + 1 if (cnt >= D): right = mid - 1 else: left = mid + 1 print(left)
Python
복사