eaz_coding

[Baekjoon] 1300 K번째 수 본문

eaz_algorithm

[Baekjoon] 1300 K번째 수

eaz_silver 2024. 11. 16. 23:16

문제

세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자.

배열 A와 B의 인덱스는 1부터 시작한다.

 

https://www.acmicpc.net/problem/1300

 


풀이

import sys
input = sys.stdin.readline

n = int(input())
k = int(input())

s, e = 1, k
answer = 0

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

    cnt = 0
    for i in range(1, n+1):
        cnt += min(m//i, n)
    
    if cnt >= k:
        answer = m
        e = m-1        
    else:
        s = m+1

print(answer)

 

'eaz_algorithm' 카테고리의 다른 글

[Baekjoon]9019번 DSLR  (0) 2024.11.20
[Baekjoon] 14891 톱니바퀴  (0) 2024.11.18
[Baekjoon] 1904번 01타일  (0) 2024.11.15
[Baekjoon] 2805 나무 자르기  (1) 2024.11.14
[Baekjoon] 12865 평범한 배낭  (0) 2024.11.13