2417. ์ ์ ์ ๊ณฑ๊ทผ (silver 4)
์ ์๊ฐ ์ฃผ์ด์ง๋ฉด, ๊ทธ ์์ ์ ์ ์ ๊ณฑ๊ทผ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ n์ด ์ฃผ์ด์ง๋ค. (0 ≤ n < 263)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ q^2 ≥ n์ธ ๊ฐ์ฅ ์์ ์์ด ์๋ ์ ์ q๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ1
122333444455555
์์ ์ถ๋ ฅ1
11060446

ํ์ด)
์ด๋ถ ํ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
์์์ ์ ํด๋นํ๋ start๋ 0, ๋์ ์ ํด๋นํ๋ end๋ ์ ๋ ฅ๊ฐ์ธ n์ผ๋ก ์ ์ฅํด์ฃผ์๋ค.
while๋ฌธ์ ์ฌ์ฉํด์ mid๊ฐ์ ์์๊ฐ๊ณผ ๋๊ฐ์ ์ค๊ฐ ๊ฐ์ผ๋ก ์ ์ฅํด์ฃผ์๊ณ , if๋ฌธ์ ์ฌ์ฉํด์ ์ค๊ฐ๊ฐ์ ์ ๊ณฑ๊ฐ์ด n ๋ฏธ๋ง์ด๋ฉด ์์์ ์ ์ค๊ฐ๊ฐ๋ณด๋ค 1ํฌ๊ฒ ์ ์ฅํด์ ๋ค์ ํ์ํ๋๋ก ํ๊ณ , ์ค๊ฐ๊ฐ์ ์ ๊ณฑ๊ฐ์ด n์ด์์ด๋ฉด ๋์ ์ ์ค๊ฐ๊ฐ๋ณด๋ค 1 ์๊ฒ ์ ์ฅํด์ฃผ์๋ค,
n = int(input())
start = 0
end = n
while start <= end:
mid = (start + end) // 2
if mid ** 2 < n:
start = mid + 1
else:
end = mid - 1
print(end+1)