ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์์ ๋ค๋ฃฌ ๋์ ์๋ฅด๊ธฐ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ๋ค๋ฅธ ์ ์ด ์๋ค๋ฉด, ์๋ฆฌ๋ ๋๋ฌด๊ฐ mid๋ณด๋ค ํฐ ๊ฒฝ์ฐ๋ง ๊ฒฝ์ฐ์ ํฌํจ๋๋ค. ๋ฌธ์ ์ ์ฃผ์ด์ง ๊ฒ์ฒ๋ผ ์ด๋ถ ํ์์ผ๋ก 15๋ผ๋ ๋์ด๋ก ๋๋ฌด๋ฅผ ์๋ฅธ๋ค๋ฉด 20 - 15 = 5, 17 - 15 = 2, ์ด 7m์ ๋๋ฌด๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์๋ค.
์ฝ๋
from sys import stdin
if __name__ == '__main__':
k, n = map(int, stdin.readline().split())
trees = list(map(int, stdin.readline().split()))
s, e = 1, max(trees)
while s <= e:
m = (s + e) // 2
make_tree = sum([tree - m if tree >= m else 0 for tree in trees])
if make_tree >= n:
s = m + 1
else:
e = m - 1
print(e)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 15558 ์ ํ ๊ฒ์ (0) | 2020.08.23 |
---|---|
๋ฐฑ์ค: 2110 ๊ณต์ ๊ธฐ ์ค์น (0) | 2020.08.23 |
๋ฐฑ์ค: 1654 ๋์ ์๋ฅด๊ธฐ (0) | 2020.08.22 |
๋ฐฑ์ค: 2251 ๋ฌผํต (0) | 2020.08.21 |
๋ฐฑ์ค: 12886 ๋ ๊ทธ๋ฃน (0) | 2020.08.21 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ