๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

[๋ฐฑ์ค€] [Python] Class2_1654๋ฒˆ_๋žœ์„  ์ž๋ฅด๊ธฐ

Dbswnstjd 2022. 10. 26. 20:57

๋ฌธ์ œ

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

 

1654๋ฒˆ: ๋žœ์„  ์ž๋ฅด๊ธฐ

์ฒซ์งธ ์ค„์—๋Š” ์˜ค์˜์‹์ด ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋žœ์„ ์˜ ๊ฐœ์ˆ˜ K, ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ๋žœ์„ ์˜ ๊ฐœ์ˆ˜ N์ด ์ž…๋ ฅ๋œ๋‹ค. K๋Š” 1์ด์ƒ 10,000์ดํ•˜์˜ ์ •์ˆ˜์ด๊ณ , N์€ 1์ด์ƒ 1,000,000์ดํ•˜์˜ ์ •์ˆ˜์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ญ์ƒ K โ‰ฆ N ์ด๋‹ค. ๊ทธ

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 1654๋ฒˆ ๋ฌธ์ œ - ๋žœ์„  ์ž๋ฅด๊ธฐ
import sys
k, n = map(int, sys.stdin.readline().split())
lan = []
for _ in range(k):
    lan.append(int(sys.stdin.readline()))
start = 1
end = max(lan)

while(start <= end):
    mid = (start+end) // 2
    cnt = 0
    for i in lan:
        cnt += i // mid
    if cnt >= n:
        start = mid + 1
    else:
        end = mid - 1 
print(end)