2024. 9. 30. 15:43ใAlgorithm ( p & swlug )/Baekjoon
๐ ๊ณผ์ 2
์ฐํ์ด๋ ์ด๋ฆฐ ์์ , ์ง๊ตฌ ์ธ์ ๋ค๋ฅธ ํ์ฑ์์๋ ์ธ๋ฅ๋ค์ด ์ด์๊ฐ ์ ์๋ ๋ฏธ๋๊ฐ ์ค๋ฆฌ๋ผ ๋ฏฟ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฐ ์ง๊ตฌ๋ผ๋ ์ธ์์ ๋ฐ์ ๋ด๋ ค ๋์ ์ง 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์ง์ ๊น์ง ์ ํํ ๋๋ฌํ๋๋ฐ ํ์ํ ์ต์ํ์ ๊ณต๊ฐ์ด๋ ์ฅ์น ์๋ ํ์๋ฅผ ์ถ๋ ฅํ๋ค.
๐ ์ฝ๋ & ์ฝ๋ ๋ถ์
ํด๋น๋ฌธ์ ๋ ๋ฐฐ์ถ๋ฌธ์ ๋ณด๋ค๋ ๊ณผ์ ๋ฅผ ํธ๋๋ฐ, ์ง์ ์ด ์์ด์, ์ฐจ๋ผ๋ฆฌ ์ฝ๋๋ฅผ ๊ณต๋ถํด๋ณด๋ ๊ฒ์ผ๋ก ํ์ด ๊ณผ์ ๋ฅผ ๋์ฒดํ๊ธฐ๋ก ํ๋ค.
T = int(input())
for i in range(T):
x, y = map(int, input().split()) #์ถ๋ฐ ๋ฐ ๋์ฐฉ ์ง์
d = y - x #๊ฑฐ๋ฆฌ
n = 0
while True:
if d <= n*(n+1):
break
n += 1
#์ด ์ด๋ ๊ฑฐ๋ฆฌ๊ฐ n์ ์ ๊ณฑ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋
if d <= n**2:
print(n*2-1)
#์ด ์ด๋ ๊ฑฐ๋ฆฌ๊ฐ n์ ์ ๊ณฑ๋ณด๋ค ํด ๋
else:
print(n*2)
์ฝ๋๋ ์ด์ ๊ฐ๊ณ , ์๋๋ ํ์ด์ ๊ดํด ๊ณต๋ถํ ๋ด์ฉ์ด๋ค.
1) ์ด๋์ ๋ฌด์กฐ๊ฑด ์ ์ ์ด๋ํ ๊ฑฐ๋ฆฌ์ ๊ฐ๊ฑฐ๋, 1์ฉ ๋ ํฌ๊ฑฐ๋ ์๊ฑฐ๋๋ก ๋ถ๋ฅํ๋ค.
์๋ฅผ ๋ค์ด, ์ฒ์์ 1์ ์ด๋ํ์ผ๋ฉด ๋ค์ ๊ฑฐ๋ฆฌ๋ 2 ํน์ 1, ์๋๋ฉด 0์ด ๋ ์ ์๋ค.
(ํ์ง๋ง 0๋งํผ ์ด๋์ ๋ฌด์๋ฏธ ํ๋ฏ๋ก ํ์ง์์๋ ๋๋ค.)
2) ๊ฑฐ๋ฆฌ = (๋์ฐฉ์ง์ ) - (์ถ๋ฐ์ง์ )
-> ๊ฑฐ๋ฆฌ = y - x
3) ์ฒ์ ์ด๋ํ ๋์ ๋ง์ง๋ง ๋์ฐฉ ์ง์ ๊น์ง์ ์ด๋์ ๋ฌด์กฐ๊ฑด 1์ด๋ค.
์) ๊ฑฐ๋ฆฌ๊ฐ 8์ผ๋
10์์ ์์์ ํ๋ฉด, ๋์ฐฉ์ 18์ด๊ณ , ์ฒ์์ด๋๊ฑฐ๋ฆฌ๋ ๋ฌด์กฐ๊ฑด 1์ด๊ณ ๋ง์ง๋ง ๋์ฐฉ ์ง์ ๊น์ง์ ์ด๋๊ฑฐ๋ฆฌ๋ ๋ฌด์กฐ๊ฑด 1์ด๋ค.
์ด ์ด๋ํด์ผ๋ ๊ฑฐ๋ฆฌ | ์ด๋ ๊ฑฐ๋ฆฌ | ๊ณต๊ฐ์ด๋ ์๋ ํ์ |
1 | 1 | 1 |
2 | 11 | 2 |
3 | 111 | 3 |
4 | 121 | 3 |
5 | 1211 | 4 |
6 | 1221 | 4 |
7 | 12211 | 5 |
8 | 12221 | 5 |
9 | 12321 | 5 |
10 | 123211 | 6 |
11 | 123221 | 6 |
12 | 123321 | 6 |
13 | 1233211 | 7 |
14 | 1233221 | 7 |
15 | 1233321 | 7 |
16 | 1234321 | 7 |
17 | 12343211 | 8 |
18 | 12343221 | 8 |
๊ท์น์ ์ฐพ์๋ณด๋ฉด,
1๊ณผ 2๋ ๋ฐ๋ณต์ 1๋ฒ
3๊ณผ 4๋ ๋ฐ๋ณต์ 2๋ฒ
5์ 6์ ๋ฐ๋ณต์ 3๋ฒ
7๊ณผ 8์ ๋ฐ๋ณต์ 4๋ฒ
์ด๋ฌํ ๊ท์น์ผ๋ก ๊ทธ๋ค์ ์ซ์๋ค์ ์๋ง๋ 9, 9, 9, 9, 9, 10, 10, 10, 10, 10 (9๊ฐ 5๋ฒ, 10๋ 5๋ฒ ๋ฐ๋ณต)... ... ์ด๋ผ๋ ๊ฒ์ ์ ์ถํ ์ ์๋ค.
๋ํ ๊ฒฝ๊ณ์ ์ ์๋ ์ซ์๋ค์ ๊ทธ ์ ์ ๋ฐ๋ณต ํ์๋ฅผ ๋ชจ๋ ํฉํ ์ซ์์ ๊ฐ์๋ค.
์ด๋ฐฉ๋ฒ์ ์ด์ฉํด์ ๊ณต๊ฐ์ด๋์ ์๋ ํ์๋ฅผ ๊ตฌํ ์ ์๋ค๊ณ ํ๋ค.
์ฌ๊ธฐ์ ๋ฐ๋ณต ํ์๊ฐ ๊ฐ์ ๊ฒ๋ผ๋ฆฌ ๋ํ๋ฉด 2*1, 2*2, 2*3 ... 2*n ์ด ๋์จ๋ค. ๊ทธ๋ฆฌ๊ณ , n์ ์ ๊ณฑ์ ๊ฒฝ๊ณ์ ์ ์๋ ์ซ์์ ๊ฐ๋ค.
๐ ๋๋์
ํด๋น๋ฌธ์ ๋ ๋ฐฐ์ถ๋ฌธ์ ๋ณด๋ค๋ ์ ๊ทผํ๊ธฐ๊ฐ ์ด๋ ค์ ๊ณ , ์ด๋ค์์ผ๋ก ํ์ด์ผํ ์ง ๊ฐ์ด ์ค์ง์์๋ค..
๊ทธ๋์ ์ง์ ์ด์๊ณ , ์ด๋ ต๋ค๊ณ ๋๊ปด์ ธ์, ๋ฐ๋ก ํ์ด๋ฅผ ๊ณต๋ถํ๋ฉด์ ํด๊ฒฐํ ๊ณผ์ ์ธ๋ฐ, ์๊ฐ๋ณด๋ค ํ์ด๋ฅผ ๋ณด๋ ๊ท์น์ ์ฐพ๋๊ฒ
๋ง์ด ์ด๋ ต์ง๋ ์์ ๊ฒ ๊ฐ์๋ค.
๊ทธ๋๋,, ์ด์ฌํ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ ๋ฌธ์ ์ด๋ค. ํ์ดํ ..!
[์ฐธ๊ณ ํ ์๋ฃ]
https://eunhee-programming.tistory.com/99