๐ก ์กฐ๊ฑด
- ์๊ทผ์ด์ ์น๊ตฌ๋ค์ ์ค์คํธ๋ ์ผ๋ฆฌ์๋ก ์ฌํ์ ๋ ๋ฌ๋ค. ์๊ทผ์ด์ ์น๊ตฌ๋ค์ ์ด M๋ช
์ด๊ณ , ์ง๊ธ ๊ณตํญ์์ ํ ์ค๋ก ์์ ์
๊ตญ์ฌ์ฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค.
(1 โค N โค 100,000, 1 โค M โค 1,000,000,000)
- ์
๊ตญ์ฌ์ฌ๋๋ ์ด N๊ฐ๊ฐ ์๋ค. ๊ฐ ์
๊ตญ์ฌ์ฌ๊ด์ด ์ฌ์ฌ๋ฅผ ํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ฌ๋๋ง๋ค ๋ชจ๋ ๋ค๋ฅด๋ค.
k๋ฒ ์ฌ์ฌ๋์ ์์์๋ ์ฌ์ฌ๊ด์ด ํ ๋ช
์ ์ฌ์ฌ๋ฅผ ํ๋๋ฐ ๋๋ ์๊ฐ์ Tk์ด๋ค.
(1 โค Tk โค 109)
- ๊ฐ์ฅ ์ฒ์์ ๋ชจ๋ ์ฌ์ฌ๋๋ ๋น์ด์๊ณ , ์ฌ์ฌ๋ฅผ ํ ์ค๋น๋ฅผ ๋ชจ๋ ๋๋๋ค. ๊ทผ์ด์ ์น๊ตฌ๋ค์ ๋นํ๊ธฐ ํ๋๋ฅผ ์ ์ธ๋ด๊ณ ๋๋ฌ๊ฐ๊ธฐ ๋๋ฌธ์,
์ง๊ธ ์ฌ์ฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ฌ๋์ ๋ชจ๋ ์๊ทผ์ด์ ์น๊ตฌ๋ค์ด๋ค. ํ ์ฌ์ฌ๋์์๋ ํ ๋ฒ์ ํ ์ฌ๋๋ง ์ฌ์ฌ๋ฅผ ํ ์ ์๋ค.
- ์๊ทผ์ด์ ์น๊ตฌ๋ค์ ๋ชจ๋ ์ปดํจํฐ ๊ณตํ๊ณผ ํ์์ด๊ธฐ ๋๋ฌธ์, ์ด๋ป๊ฒ ์ฌ์ฌ๋ฅผ ๋ฐ์ผ๋ฉด ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ต์๊ฐ ๋ ์ง ๊ถ๊ธํด์ก๋ค.
- ์๊ทผ์ด์ ์น๊ตฌ๋ค์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ .
- ์ด๋ถํ์ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin
n, m = map(int, stdin.readline().split())
arr = [int(stdin.readline()) for _ in range(n)]
l, r = min(arr), max(arr) * m
ans = r
while l <= r:
total = 0
mid = (l + r) // 2
for i in range(n):
total += mid // arr[i]
if total >= m:
r = mid -1
ans = min(mid, ans)
else:
l = mid + 1
print(ans)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
7 10
3
8
3
6
9
2
4
์คํ๊ฒฐ๊ณผ
8
โจ๏ธ ๋ฌธ์ ํ์ด
- ๊ทธ๋ฆฌ๋ ํน์ ๋ธ๋ฃจํธํฌ์ค๋ก ๋ฌธ์ ๋ฅผ ํ๊ฒ๋๋ฉด, ์ธ์ ์ M ์ ์ต๋ ํฌ๊ธฐ๊ฐ 10์ต์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ์๊ฐ์ด๊ณผ๋ก ํ๋ฆฌ๊ฒ ๋๋ค.
- ์ด๋ถํ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ด์ผํ๋๋ฐ, ์ฌ์ฌ๋์์ ํ๋ช
์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋ ์ต์ ์๊ฐ์ l,
์ฌ์ฌ๋์์ m ๋ช
์ด ์ฌ์ฌ๋ฅผ ๋ฐ๋ ์ต๋ ์๊ฐ์ r ๋ก ์ ํ๋ค.
์ด์ ๋ฐ๋ผ l = min(arr), r = max(arr) * m
์ด ๋๋ค.
- ์ด๋ถํ์์ ์ํด while ๋ฌธ์ ์ฌ์ฉํ๋๋ฐ, ์กฐ๊ฑด์ l ์ด r๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋๋ง ๋ฐ๋ณต์ด๋ค.
m ๋ช
์ด ์ฌ์ฌ๋ฅผ ๋ชจ๋ ๋ฐ๋ ์๊ฐ์ mid๋ผ๊ณ ํ์ ๋, mid = (l + r) // 2 ์ด๋ค.
์ด mid ๊ฐ์ ์ฌ์ฉํ์ฌ ์ต์ ์๊ฐ์ ๊ตฌํ๋ค.
- n ๊ฐ์ ์ฌ์ฌ๋์ ์ ๋ณด๊ฐ ์๋ arr ๋ฆฌ์คํธ๋ฅผ ์ํ(i)ํ๋ฉด์, mid ์๊ฐ์ i ๋ฒ ์ฌ์ฌ๋์์ ์ฌ์ฌ๋ฅผ ๋ฐ์ ์ ์๋ ์ธ์์ total ๋ณ์์ ์ ์ฅํ๋ค.
- arr ๋ฆฌ์คํธ๋ฅผ ๋ชจ๋ ์ํํ๋ค๋ฉด, total ๊ฐ๊ณผ m์ ๊ฐ์ ๋น๊ตํ์ฌ ๋ชจ๋ ์ธ์์ด ์ฌ์ฌ๋์์ ์ฌ์ฌ๋ฅผ ๋ฐ์๋์ง ํ์ธํ๋ค.
์ฌ๊ธฐ์ total ๊ฐ์ด m ๋ณด๋ค ์๋ค๋ฉด ๋ชจ๋ ์ธ์์ด ์ฌ์ฌ๋ฅผ ๋ฐ์ง ๋ชปํ ๊ฒ์ด๋ฏ๋ก, l ์ mid + 1 ๋ก ๊ฐฑ์ ํ๋ค.
- (5) ๋ฒ์ ์กฐ๊ฑด์์ total ๊ฐ์ด m ๋ณด๋ค ํฌ๋ค๋ฉด ๋ชจ๋ ์ธ์์ด ์ฌ์ฌ๋ฅผ ๋ฐ์ ์ถฉ๋ถํ ์๊ฐ์ธ ๊ฒ์ด๋ค.
mid ๊ฐ๊ณผ answer ๊ฐ์ ๋น๊ตํ์ฌ ๋ ์์ ๊ฐ์ answer ๊ฐ์ผ๋ก ๊ฐฑ์ ํ ๋ค,
r ์ mid - 1๋ก ๊ฐฑ์ ํ์ฌ m ๋ช
์ด ๋ชจ๋ ์ฌ์ฌ๋ฅผ ๋ฐ๋ ๋ ์์ ์ต์ ์๊ฐ์ด ์๋์ง ๊ฒ์ฌํ๋ค.