반응형
N = int(input())
K = int(input())
low =0
high = K # k 번째 수는 K 를 넘을 수 없다.
answer =0
while low<=high:
mid = (low +high)//2
count =0
for i in range(1,N+1):
count +=min(mid//i, N) # mid // i 가 N보다 클 수 있기 때문에 각 줄이 N 보다
if count<K:
low = mid +1
else: # 최솟값을 찾아야하기 때문에, 같을 때는 줄여준다.
answer = mid
high =mid -1
print(answer)
참고 문헌
반응형
'알고리즘' 카테고리의 다른 글
백준 1012번 유기농 배추 bfs 실버2 파이썬 (0) | 2020.12.28 |
---|---|
백준 2667번 단지번호붙이기 파이썬 실버1 dfs 와 bfs 문제 (0) | 2020.12.28 |
백준 5430번 AC 파이썬 실버2 큐,덱 (0) | 2020.12.23 |
백준 2110번 공유기 설치 파이썬 이분탐색 실버1 (0) | 2020.12.23 |
백준 2805번 나무 자르기 파이썬 실버3 이분탐색 (0) | 2020.12.23 |