์ข์ ์น๊ตฌ๋ ์ค๋ซ๋ง์ ๋ด๋ ์ด์ํ์ง ์๋ค.
๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ์ 2์ฃผ๋์ ํ์ด๋ดค์ง๋ง ์ฌ์ค์ ์ฃผ๋ง์๋ง ํ๋๋ฒ ํผ๊ฒ์ด ์ ๋ถ๋ค.
ํ์ผ๋ ์๋ ํ๋ก์ ํธ๋ฅผ ํ๋๋ผ ์ค์ ํ ์๊ฐ์ด ์์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ ๊ธด ํ์ง๋ง ์ฝ๋ฉํ
์คํธ๋ฅผ ์๊ฐํ๋ฉด ์ด๋ถํ์๋ง ํ๋ฉด ์๋ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์ด์ ์ค๋ ๋ฌธ์ ๋ฅผ ๋์ผ๋ก ๋ค๋ฅธ ๋ถ์ผ๋ฅผ ์กฐ๊ธ ๊ณต๋ถํด๋ด์ผ ํ์ง ์์๊น ์๊ฐ์ด ๋ ๋ค. ๋ง์ด ๊ณต๋ถํ ์ ์๋ ์๊ฐ์ด ์๋์ด์ ํ ๋ฌธ์ ๋ง ํ์ด๋ณด์๋ค.
์ด์ ๋ฐฑ์ค์์ ์ด๋ถํ์์ Silver๋์ด๋๋ ๋ชจ๋ ์ค๊ฐ๊ฐ(mid)
์ ๊ฐ์ง๊ณ ์ด๋ป๊ฒ ์กฐ๊ฑด์ ๋ง๋์ง ๊ตฌํํ๋ ๊ฒ์ด๋ผ๊ณ ๋ณธ๋ค. ๊ณจ๋๋ฌธ์ ๋ ํ๋๊ฐ ๋ณด์๋๋ฐ ๊ทธ ๋ฌธ์ ๋ ๊ฒฐ๊ตญ์ ์ผ๋งํผ mid
๊ฐ์ ์ ๊ตํ๊ฒ ํธ๋์ง๊ฐ ๊ด๊ฑด์ด๋ค. ์ด ๋ฌธ์ ๋ LowerBound
๋ก ํ๊ฒ ํ๋ ๋ฐฉ์์ด์๊ณ mid์ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.
let currentWinningAvg = (xy[1]*100) / xy[0]//ํ์ฌ์น๋ฅ
let newWinningAvg = ((xy[1] + mid) * 100) / (xy[0] + mid ) //๊ฐฑ์ ๋ ์น๋ฅ
if newWinningAvg > currentWinningAvg {...}
LowerBound
์ฌ์ UpperBound
์ ๋ฐ๋๋ก left,right ๊ฐ์ด ๋ณ๊ฒฝ๋๋ค๋ ์ ์ ๋ฐฐ์ ๋ค.
๊ทธ๋์ ํ์๋ ์ด๋ถํ์ ๋ฌธ์ ๋ค
๊ฑฐ์ 5๋
๋ง์ ์ด ์น๊ตฌ๋ฅผ ๋ณธ ๊ฒ๊ฐ๋ค. ๋ค๋ฅธ ์น๊ตฌ๋ค๊ณผ ๊ฐ์ด ์์ฃผ ๋ณธ ์น๊ตฌ์ธ๋ฐ ์ธ์ ๊ฐ ๋จํก๋ฐฉ์ ๋๊ฐ๊ณ ๊ทธ ๋ถ๋ถ์์ ์ธ์ ๊ฐ ๋ณด๊ฒ ์ง๋ผ๋ ๋ง์ธ๋๋ก ๊ฑฐ์ 5๋
๋ง์ ๋ค์๋ณด๊ฒ ๋์๋ค. ์ฌ์ค์ ๋ด๊ฐ ์ฐ๋ฝํ ๊ฒ๋ ๋ฐ๋
์ ์ด๊ธด ํ๋ฐ ๋ฐ๋น ์ ๊ฒจ์ฐ ๋ณด๊ฒ ๋์๋ค. ๋ค์ ๋ณด๊ธฐ ์ ์ ๋ง์ด ๋ฐ๋์์๊น ๊ถ๊ธํ๊ณ ์ด์ํ ๊น ์ถ๊ธฐ๋ ํ์ง๋ง ๋ณด์๋ง์ ์์๋ค. ์ฌ์ ํ ๋๊ฐ๊ตฌ๋ ใ
ใ
ใ
์๋ก ๋ฐฅ์ ๋จน๊ณ ์ ํ์ ํ๋ฉฐ ์ด๋ฐ์ ๋ฐ ์ด์ผ๊ธฐ๋ฅผ ํ๋ค. ์กฐ๋ง๊ฐ ๋ ๋ณด๊ฒ ๋ค๋ ์๊ฐ์ ํ๋ค. ๋์ด๋ฅผ ๋จน์ด๊ฐ๋ฉด์ ์ด๋ ธ์๋ ๊ฑฐ์ ๋งค์ผ ๋ถ์ด๋ค๋
๋ ์น๊ตฌ๋ค์ด ์์ฐ์ค๋ฝ๊ฒ ๊ฐ์์ ๊ธธ์ ๋ ๋ ๋ณด๊ธฐ ์ฝ์ง๊ฐ ์์๋ฐ ์ข์ ์น๊ตฌ๋ค์ ์ญ์ ์ค๋ซ๋ง์ ๋ด๋ ๋ฐ๊ฐ๊ณ ์ข์ ๊ฒ ๊ฐ๋ค. ๊ฐ์ ์์ ์ ์ผ์ด ์ ๋์ผ๋ฉด ์ข๊ฒ ๋ค.