백준 1300 - K번째 수 (파이썬)

Updated:

Answer

import sys

n = int(sys.stdin.readline())
k = int(sys.stdin.readline())
s, e = 1, k

def calculate(m):
    tmp = 0
    for i in range(1, n + 1):
        tmp += min(m // i, n)

    return tmp

while s <= e:
    m = (s + e) // 2

    tmp = calculate(m)
    
    if tmp >= k:
        e = m - 1
    else:
        s = m + 1

print(s)

Categories:

Updated: