๐ค๋ฌธ์ ํด๊ฒฐ
S1 | ์ํ
DFS๋ก ๊ตฌํํด๋ณด๋ ค๊ณ ํ์ผ๋ ์ญ์ ์๊ฐ์ด๊ณผ๋ก ์คํจํ๋ค.
์๊ณ ๋ฆฌ์ฆ์ด ์ํ์ด๋ค๋ณด๋ ์ญ์ ์์ผ๋ก ์ง์ ํจํด์ ๊ตฌํด์ผ ํ๋ค.
ํจํด์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๋ ธ๋์์ผ๋ก ์น ํ ๊ณณ์ ๋ณด๋ฉด ๋ญ๊ฐ ์ ์ ์๋ค.
.
.
.
.
๊ฑฐ๋ฆฌ์ ์ ๊ณฑ๊ทผ์ ํ์ ํ์๊ฐ ๋๋๋ ์ง์ .
4: 2*2-1 = 3
9: 3*2-1 = 5
16: 4*2-1 = 7
25: 5*2-1 = 9
๊ทธ๋ ๋ค๋ฉด ์ ๊ณฑ๊ทผ์ด ์๋ ์ซ์๋ ์ด๋ป๊ฒ ์ฐพ์๊น? ํ๋์์ ๋ณด์.
.
.
.
.
๊ฑฐ๋ฆฌ์ ์ ๊ณฑ๊ทผ๋งํผ ๋ค์ ์ซ์๊ฐ ์๋ค.
- EX
์๋ฅผ ๋ค์ด ๊ฑฐ๋ฆฌ๊ฐ 7์ด๋ค.
์ ๊ณฑ๊ทผ์: 2.xxxx ์ด๋ฏ๋ก 2์ด๋ค. 2๋ฅผ ์ ๊ณฑํ๋ฉด 4 ์ฐ๋ฆฌ๋ 4๋ถํฐ ๋ณด๋ฉด๋๋ค.
๊ทธ๋ ๋ค๋ฉฐ ๋๋จธ์ง๋ ๊ฑฐ๋ฆฌ 7์์ 4๋ฅผ ๋นผ๋ฉด๋๋ค.
์นด์ดํธ๋ 2*2-1 ์ด๋ฏ๋ก 3
์ ๊ณฑ๊ทผ์2, ์์์4, ๋๋จธ์ง๋3, ์นด์ดํธ๋3 | ์ด๋ ๊ฒ 4๊ฐ์ง๋ฅผ ๊ฐ์ง๊ณ ์กฐ๊ฑด์ ๊ฑธ๋ฌ์ค๋ค.
์ฌ๊ธฐ์ 3๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค.
- ๋๋จธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ
- ๋๋จธ์ง๊ฐ ์ ๊ณฑ๊ทผ๋ณด๋ค ์์ ๊ฒฝ์ฐ
- ๋๋จธ์ง๊ฐ ์ ๊ณฑ๊ทผ๋ณด๋ค ํฐ ๊ฒฝ์ฐ
1์ ๊ฒฝ์ฐ ํ์์ ๋ณผ ์ ์๋ฏ์ด ์นด์ดํธ ๊ทธ๋๋ก ๋ต์ด๋ค.
2์ ๊ฒฝ์ฐ ์นด์ดํธ์ 1์ ๋ํ ๊ฐ์ด ์ ๊ณฑ๊ทผ์ ์๋งํผ ์๋ค.
----์ฌ๊ธฐ์๋ ์นด์ดํธ+1 = 4, ์ ๊ณฑ๊ทผ = 2, 4๊ฐ 2๊ฐ ์๋ค. (5์ผ๋ 4, 6์ผ๋ 4)
3์ ๊ฒฝ์ฐ ์นด์ดํธ์ 1์ ๋ํ ๊ฐ์ด ์ ๊ณฑ๊ทผ์ ์๋งํผ ์๋ค.
----์ฌ๊ธฐ์๋ ์นด์ดํธ+2 = 5, ์ ๊ณฑ๊ทผ = 2, 5๊ฐ 2๊ฐ ์๋ค. (7์ผ๋ 5, 8์ผ๋ 5) ๐จ9์ผ๋๋ ์ ๊ณฑ๊ทผ์ด 3์ผ๋ก ๋์ด๊ฐ๋ค. ์ฒดํฌ X
๐จ
๐ป์์ค ์ฝ๋
import math
for tc in range(int(input())):
x, y = map(int, input().split())
dist = y - x # ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ
my_sqrt = int(math.sqrt(dist)) # ์ ๊ณฑ๊ทผ
nmg = dist - my_sqrt ** 2 # ์ ๊ณฑ๊น์ง ๋นผ๊ณ ๋๋จธ์ง
cnt = my_sqrt * 2 - 1 # ์ ๊ณฑ๊ทผ ์ผ๋์ ์ด๋ํ์
if nmg == 0:
print(cnt)
elif nmg <= my_sqrt:
print(cnt + 1)
else:
print(cnt + 2)
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋งํฌ: https://www.acmicpc.net/problem/1011
๋ฌธ์
์ฐํ์ด๋ ์ด๋ฆฐ ์์ , ์ง๊ตฌ ์ธ์ ๋ค๋ฅธ ํ์ฑ์์๋ ์ธ๋ฅ๋ค์ด ์ด์๊ฐ ์ ์๋ ๋ฏธ๋๊ฐ ์ค๋ฆฌ๋ผ ๋ฏฟ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฐ ์ง๊ตฌ๋ผ๋ ์ธ์์ ๋ฐ์ ๋ด๋ ค ๋์ ์ง 23๋ ์ด ์ง๋ ์ง๊ธ, ์ธ๊ณ ์ต์ฐ์ ASNA ์ฐ์ฃผ ๋นํ์ฌ๊ฐ ๋์ด ์๋ก์ด ์ธ๊ณ์ ๋ฐ์ ๋ด๋ ค ๋๋ ์๊ด์ ์๊ฐ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค.
๊ทธ๊ฐ ํ์นํ๊ฒ ๋ ์ฐ์ฃผ์ ์ Alpha Centauri๋ผ๋ ์๋ก์ด ์ธ๋ฅ์ ๋ณด๊ธ์๋ฆฌ๋ฅผ ๊ฐ์ฒํ๊ธฐ ์ํ ๋๊ท๋ชจ ์ํ ์ ์ง ์์คํ ์ ํ์ฌํ๊ณ ์๊ธฐ ๋๋ฌธ์, ๊ทธ ํฌ๊ธฐ์ ์ง๋์ด ์์ฒญ๋ ์ด์ ๋ก ์ต์ ๊ธฐ์ ๋ ฅ์ ์ด ๋์ํ์ฌ ๊ฐ๋ฐํ ๊ณต๊ฐ์ด๋ ์ฅ์น๋ฅผ ํ์ฌํ์๋ค. ํ์ง๋ง ์ด ๊ณต๊ฐ์ด๋ ์ฅ์น๋ ์ด๋ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธ๊ฒฉํ๊ฒ ๋๋ฆด ๊ฒฝ์ฐ ๊ธฐ๊ณ์ ์ฌ๊ฐํ ๊ฒฐํจ์ด ๋ฐ์ํ๋ ๋จ์ ์ด ์์ด์, ์ด์ ์๋์๊ธฐ์ k๊ด๋ ์ ์ด๋ํ์์ ๋๋ k-1 , k ํน์ k+1 ๊ด๋ ๋ง์ ๋ค์ ์ด๋ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์ด ์ฅ์น๋ฅผ ์ฒ์ ์๋์ํฌ ๊ฒฝ์ฐ -1 , 0 , 1 ๊ด๋ ์ ์ด๋ก ์ ์ด๋ํ ์ ์์ผ๋ ์ฌ์ค์ ์์ ํน์ 0 ๊ฑฐ๋ฆฌ๋งํผ์ ์ด๋์ ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก 1 ๊ด๋ ์ ์ด๋ํ ์ ์์ผ๋ฉฐ, ๊ทธ ๋ค์์๋ 0 , 1 , 2 ๊ด๋ ์ ์ด๋ํ ์ ์๋ ๊ฒ์ด๋ค. ( ์ฌ๊ธฐ์ ๋ค์ 2๊ด๋ ์ ์ด๋ํ๋ค๋ฉด ๋ค์ ์๊ธฐ์ 1, 2, 3 ๊ด๋ ์ ์ด๋ํ ์ ์๋ค. )
๊น์ฐํ์ ๊ณต๊ฐ์ด๋ ์ฅ์น ์๋์์ ์๋์ง ์๋ชจ๊ฐ ํฌ๋ค๋ ์ ์ ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ x์ง์ ์์ y์ง์ ์ ํฅํด ์ต์ํ์ ์๋ ํ์๋ก ์ด๋ํ๋ ค ํ๋ค. ํ์ง๋ง y์ง์ ์ ๋์ฐฉํด์๋ ๊ณต๊ฐ ์ด๋์ฅ์น์ ์์ ์ฑ์ ์ํ์ฌ y์ง์ ์ ๋์ฐฉํ๊ธฐ ๋ฐ๋ก ์ง์ ์ ์ด๋๊ฑฐ๋ฆฌ๋ ๋ฐ๋์ 1๊ด๋ ์ผ๋ก ํ๋ ค ํ๋ค.
๊น์ฐํ์ ์ํด x์ง์ ๋ถํฐ ์ ํํ y์ง์ ์ผ๋ก ์ด๋ํ๋๋ฐ ํ์ํ ๊ณต๊ฐ ์ด๋ ์ฅ์น ์๋ ํ์์ ์ต์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
์ ๋ ฅ
์ ๋ ฅ์ ์ฒซ ์ค์๋ ํ ์คํธ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ํ์ฌ ์์น x ์ ๋ชฉํ ์์น y ๊ฐ ์ ์๋ก ์ฃผ์ด์ง๋ฉฐ, x๋ ํญ์ y๋ณด๋ค ์์ ๊ฐ์ ๊ฐ๋๋ค. (0 ≤ x < y < 231)
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด x์ง์ ์ผ๋ก๋ถํฐ y์ง์ ๊น์ง ์ ํํ ๋๋ฌํ๋๋ฐ ํ์ํ ์ต์ํ์ ๊ณต๊ฐ์ด๋ ์ฅ์น ์๋ ํ์๋ฅผ ์ถ๋ ฅํ๋ค.
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ๋ฐฑ์ค - 1931. ํ์์ค ๋ฐฐ์ (0) | 2020.09.29 |
---|---|
[python] ๋ฐฑ์ค - 1929. ์์ ๊ตฌํ๊ธฐ (0) | 2020.09.28 |
[python] ํ๋ก๊ทธ๋๋จธ์ค - ํ์ ํฐํธ๋ฆฌ๊ธฐ(์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1) (0) | 2020.09.25 |
[python] ๋ฐฑ์ค - 5014. ์คํํธ๋งํฌ (0) | 2020.09.24 |
[python] ๋ฐฑ์ค - 3055. ํ์ถ (0) | 2020.09.23 |