Intro
๋ฐฑ์ค ๊ธฐ๋ณธ์ํ1์์ solved.ac ํฐ์ด ๊ธฐ์ค์ผ๋ก ๊ณจ๋5์ด๋ฉฐ ์ด์ ๋ฌธ์ ๋ค์ ๋ชจ๋ ๋ธ๋ก ์ฆ์์ ๊ฐ์ํ๋ฉด ์๋นํ ์ด๋ ค์ด ์์ค์ธ ๊ฒ ๊ฐ๋ค. PS ์ด๋ณด์ธ ๋๋ 1193 ๋ฌธ์ ๋ฅผ ํ ๋ ์์ด์ ์จ์ ๋๊ฐ์ด ํ์๊ธฐ์ ๋ง์ด ์ด๋ ต์ง ์์๋ค.
https://www.acmicpc.net/problem/1011
์ด ํ๋ฅผ ๋ณด๋ฉด ๊ท์น์ด ๋์ ๋ณด์ธ๋ค. ์๊น๋ณ๋ก n๊ตฐ์ ์ก์๋ณด๋ฉด ์ฒซ๋ฒ์งธ ๊ตฐ์ ์์ ๊ฐ์๊ฐ 2๊ฐ, ๋๋ฒ์งธ ๊ตฐ์ 4๊ฐ, ์ธ๋ฒ์งธ ๊ตฐ์ 6๊ฐ ์ด๋ ๋ฏ n๊ตฐ ์์ ์ด 2n๊ฐ๊ฐ ๋ค์ด์๋ค. ์ด๋ฅผ ์ด์ฉํ์ฌ, ๊ฑฐ๋ฆฌ๊ฐ ์ด๋ ๊ตฐ์ ์๋์ง๋ฅผ ๊ตฌํ๋ค. ์ด๋ ๊ฒ n์ ๊ตฌํ ํ ๊ฐ ๊ตฐ์ ์ ๋ณด๋ฉด ๋ฑ ๋ฐ์ผ๋ก ๋๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด๋ฅผ ์ด์ฉํ์ฌ ๊ฑฐ๋ฆฌ๊ฐ ๊ตฐ์์ ๊ณผ๋ฐ์ ๋์ด๊ฐ๋ฉด 2n์ ์ถ๋ ฅ , ๊ทธ๋ ์ง ์์ผ๋ฉด 2n - 1์ ์ถ๋ ฅํ๋ค !
Python ์ฝ๋
import sys
n = int(sys.stdin.readline())
TestLIST = []
for i in range(n):
TestLIST.append(list(map(int, sys.stdin.readline().split())))
def adsf(list):
x = list[0]
y = list[1]
gap = y - x
i = 0
while 1:
if i * (i + 1) / 2 - 2 * i <= gap <= i * (i + 1):
break
else:
i += 1
if i * (i + 1) >= gap > i * (i + 1) - i:
return 2 * i
else:
return 2 * i - 1
for a in TestLIST:
print(adsf(a))
๋๊ธ