[๋ฐฑ์ค] 1193๋ฒ: ๋ถ์์ฐพ๊ธฐ python
https://www.acmicpc.net/problem/1193
1193๋ฒ: ๋ถ์์ฐพ๊ธฐ
์ฒซ์งธ ์ค์ X(1 ≤ X ≤ 10,000,000)๊ฐ ์ฃผ์ด์ง๋ค.
www.acmicpc.net
์ ๋ต ์ฝ๋:
x=int(input())
line=0
end=0
while x>end: #line ์ฐพ๊ธฐ
line+=1
end+=line
diff = end - x
if line%2 ==0: #์ง์ ๋ผ์ธ์ผ ๋
top = line-diff
bottom = diff+1
else:
top = diff+1
bottom = line-diff
print("%d/%d"%(top,bottom))
ํ์ด ๊ณผ์ :
๋๊ฐ์ ๋ผ์ธ์ ๋ผ์ธ์ด๋ผ๊ณ ์นญํ๋๋ก ํ๊ฒ ๋ค
๋ฌธ์ ์ ๋ฐฐ์ด์ ๋ณด๋ฉด ์ผ์ ํ ๊ท์น์ด ๋ํ๋จ์ ์ ์ ์๋๋ฐ
๋ผ์ธ์ ์๋ ๋ถ์์ ๊ฐฏ์๋ ์ฒซ๋ฒ์งธ ๋ผ์ธ์ 1๊ฐ, ๋๋ฒ์งธ ๋ผ์ธ์ 2๊ฐ, ์ธ๋ฒ์งธ ๋ผ์ธ์ 3๊ฐ,,
์ด๋ฐ ์์ผ๋ก ๋์ด๊ฐ๋ ๊ฒ์ด๋ค.
ํนํ,
์ง์๋ฒ์งธ ๋ผ์ธ์ ์์์ (์์ค)์์ ๋์ ์ผ๋ก ๊ฐ์๋ก ๋ถ์๊ฐ 1์ฉ ๋์ด๋๊ณ ๋ถ๋ชจ๊ฐ 1์ฉ ๊ฐ์ํ๋ฉฐ
ํ์๋ฒ์งธ ๋ผ์ธ์ ์์์ ์์ ๋์ ์ผ๋ก ๊ฐ์๋ก ๋ถ์๊ฐ 1์ฉ ์ค๊ณ , ๋ถ๋ชจ๊ฐ 1์ฉ ๋์ด๋๋ ๊ฒ๋ ํ์ธ ํ ์ ์๋ค.
end๋ฅผ ํด๋น ๋ผ์ธ์ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ๋ปํ๋ค๊ณ ํ ๋(1,3,6,10,,)
์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ ์ ๋ต ์ฝ๋์ ๊ฐ๋ค.