๋์ ์ ์ ์๋ฅด๋ ์๋ค์..
1654๋ฒ: ๋์ ์๋ฅด๊ธฐ
์ฒซ์งธ ์ค์๋ ์ค์์์ด ์ด๋ฏธ ๊ฐ์ง๊ณ ์๋ ๋์ ์ ๊ฐ์ K, ๊ทธ๋ฆฌ๊ณ ํ์ํ ๋์ ์ ๊ฐ์ N์ด ์ ๋ ฅ๋๋ค. K๋ 1์ด์ 10,000์ดํ์ ์ ์์ด๊ณ , N์ 1์ด์ 1,000,000์ดํ์ ์ ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ํญ์ K โฆ N ์ด๋ค. ๊ทธ
www.acmicpc.net

๋ ์์ง... ์ด๋ถํ์์ while ํ์ถ ์กฐ๊ฑด์ ์์ง ์ ๋ชป ์ก๋๋ค.................ใ ใ ์ธ์ ์ฏค ์ต์ํด์ง๊น.. ์ด์จ๋
๋งจ ์ฒ์์ ํ๋ ์๊ฐ์ ์ต์ข ๋ต์์ด๋ ๊ฑฐ์ ๋น์ทํ๋ฐ ๋ฐ๋ณต ์กฐ๊ฑด์ ๋ชป์ก๊ณ ํค๋งธ๋ค.
์คํฐ๋์์ ๋ค๊ฐ์ด ์๊ธฐํ๋ค๊ฐ ์ง์์ ํ์ด๋ณด๊ธฐ๋กํ๊ณ ์ง์์๋๋ฐ ๊ฐ๋ฌผ๊ฐ๋ฌผ,,ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ
์ํผ ๋๋ฒ์งธ ์๊ฐ์ ๊ทธ๋์ 0๋ถํฐ ๊ฐ์ฅ ์งง์๋์ ๊น์ง๋ฅผ ๋ฒ์๋ก ์๊ฐํ๋ค.

๊ทธ๋ฆผ๊ณผ ๊ฐ์ ์ด์ ๋ก ๊ฐ์ฅ ์์๊ฑธ ๊ธฐ์ค์ผ๋ก ์๋ฅด๋ฉด.. ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค. ์ค์ ๋ก ์ ๋ ฅ์์ ๋ ์ ๋ ๊ฒ ํ์ด๋ ๋์ํจ.

๊ทผ๋ฐ!!!!!!!!!!!!!!!!!!!!! ์ด๋ ๊ฒ min์ด ๊ทน๋จ์ ์ผ๋ก ์งง์ ๊ฒฝ์ฐ๋ ์๊ธฐ๊ฐ ๋ค๋ฅด๋ค...
N=4์ด๋ฏ๋ก 4๊ฐ์ ๊ธธ์ด๊ฐ ๋๊ฐ์ ๋์ ์ ๋ง๋ค๊ณ ์ถ์๋ฐ, ์๋จ์ฒ๋ผ ๊ฐ์ฅ ์งง์๊ฒ์ ๋ง์ถ ๊ฒ ๋ณด๋ค
๋ฐ์ ๊ทธ๋ฆผ์ฒ๋ผ ๋ค๋ฅธ ์ ์ ๊ธฐ์ค์ ๋ง์ถ๊ณ , ๊ทธ๊ฑธ ๋๋ฒ ์๋ฅธ๊ฒ ๋ ๊ธด ๊ฒ์ ์ ์ ์๋ค.
์๋ฅธ ๊ฐฏ์๊ฐ 6๊ฐ๊ฐ ๋ผ๋ ์๊ด ์๋ค. ๋ฌธ์ ์ ๊ทธ๋ ๊ฒ ์จ์์ผ๋๊น..
์ํผ ๋ฒ์๋ฅผ ๋ฐ๊ฟ์ผ ํ๋ค...ใ ใ ์ด๊ฑธ ๋ชจ๋ฅด๊ณ ์ํ๋ ธ์ง ์ํ๋ ธ์ง ํ๋ฉด์ ์ด์ํ๋ฐ ๊ณ์ ๊ณ ์น๊ณ ์์์
๋ฒ์๋ ๋์ ๊ธธ์ด์ max ์ด์์ผ๋ก๋ ๊ธธ์ด์ง ์ ์์ผ๋ฏ๋ก, max๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก์์ ์๋ฅด๊ธฐ ์์ํจ.
# 1654๋ฒ : ๋์ ์๋ฅด๊ธฐ def binary_search_1654(): k, n = map(int, input().split()) lan_wires = [] for _ in range(k): lan_wires.append(int(input())) # k, n = 4, 11 # lan_wires = [802, 743, 457, 539] longest = max(lan_wires) left = 1 right = longest result = 0 while left <= right : center = (left + right) // 2 # print('center=====', center) hap = 0 for cm in lan_wires: hap += cm // center #์ชผ๊ฐ ๋์ ์ ๊ฐฏ์์ ํฉ if hap < n: right = center -1 #๊ธธ์ด๋ฅผ ์๊ฒ๋ง๋ค์ด์ ๊ฐฏ์๊ฐ ๋์ด๋๊ฒ elif hap >= n : if center > result : result = center left = center +1 #๊ธธ์ด๋ฅผ ํค์์ ๊ฐฏ์๊ฐ ์ค์ด๋ค๊ฒ print(result)
'๐๊ณต๋ถ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2020.11.30 |
---|---|
[๋ฐฑ์ค] 2110๋ฒ ๊ณต์ ๊ธฐ ์ค์น (0) | 2020.11.24 |
[๋ฐฑ์ค] 2805๋ฒ ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2020.11.24 |
[๋ฐฑ์ค] 10816๋ฒ ์ซ์ ์นด๋2 (0) | 2020.11.22 |
[๋ฐฑ์ค] 4573 ๋ฒ ์ ํ๋๋ฒ (0) | 2020.11.19 |
๋๊ธ