๋ฐฑ์ค 1193๋ฒ python ํ์ด
๋ฌธ์ ๋ฅผ ์ฝ๊ณ ์ดํด๋ ํ์ง๋ง ๊ท์น์ ๋ฐ๊ฒฌํ๊ณ ๋์ ์ ์ฉ์ ํ๋ ๊ณผ์ ์ด ์ด๋ ค์ ๋ค
์ด์์ด๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ์ด๋ ค์ด ๋ถ๋ถ์ ์์ด์๋ ๋ฌผ๋ก ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ๋ ๊ฒ์ด ์ข์ง๋ง
๋๋ง์ ์ฝ๋๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋ง์๋๋ก ์ฝ๋๋ฅผ ์ง๋ดค๋ค
์ฐธ๊ณ ํ ๋ด์ฉ์ ๋๊ฐ์ ์ผ๋ก ์์์ ๋ง๊ฒ ๋ฆฌ์คํธ๋ฅผ ๋์ดํ์๋
1๏ธโฃ ํ์๋ฒ์งธ ์ค
=> ๋ถ์: ํด๋น ์ค์ ์ฌ์ด์ฆ์์ 1์ฉ ์ค์ด๋ฆ
=> ๋ถ๋ชจ: 1๋ถํฐ ์์ํ์ฌ 1์ฉ ๋์ด๋จ
2๏ธโฃ ์ง์๋ฒ์งธ ์ค
=> ๋ถ์: 1๋ถํฐ ์์ํ์ฌ 1์ฉ ๋์ด๋จ
=> ๋ถ๋ชจ: ํด๋น ์ค์ ์ฌ์ด์ฆ์์ 1์ฉ ์ค์ด๋ฆ
์ผ๋ก ํ/์ง์ ์ด์ฉํด์ ์ฝ๋์ ์ ์ฉ์ํฌ ์ ์๋ค๋ ๊ฒ์ด์๋ค
๋งจ ์ฒ์์ผ๋ก ์งฐ๋ ์ฝ๋๋ ์๋์ ๊ฐ๋ค
<์ด๊ธฐ์ฝ๋>
import sys
# ์ด๊ธฐ์ฝ๋
# n = int(input())
n = int(sys.stdin.readline())
c = 1
count = 0
r = n
for i in range(n):
if c == count:
c += 1
count = 0
count += 1
if c % 2 == 0:
top = count
bottom = (c + 1) - count
elif c % 2 != 0:
top = (c + 1) - count
bottom = count
result = '/'.join([str(top), str(bottom)])
# ์ด๊ธฐ์ฝ๋
# print(str(top) + "/" + str(bottom))
print(result)
์ต์ด์ ์งฐ๋ ์ฝ๋๋ ์๊ฐ์ด๊ณผ๋ก ์ค๋ต์ด ๋์ด์
์ ๋ ฅ๋ฐ๋ ๋ถ๋ถ๊ณผ ์ถ๋ ฅํ๋ ๋ถ๋ถ์ ์กฐ๊ธ ์๋ดค๋๋ฐ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋์๋ค
๊ทธ๋์ ์ต์ข ์ ์ผ๋ก ๋ง๋ ์ฝ๋๋ ์นด์ดํธํ๋ ๋ถ๋ถ์ ์์ ํ๋ค
(์ด ๋ถ๋ถ์ ์์นญํ์ฌ ์ฐธ๊ณ ํ์์, +๋ก 1๋ถํฐ 1์ฉ ์นด์ดํธํ๋ ๊ฒ๋ณด๋ค๋ -๋ก 1์ฉ ์ฆ๊ฐํ์ฌ ์นด์ดํธํ๋ ๊ฒ์ด ๋น ๋ฅผ ๊ฒ ๊ฐ์์)
๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์ฑ๊ณต!!
<์ต์ข ์ฝ๋>
import sys
n = int(sys.stdin.readline())
c = 1
count = 0
r = n
for i in range(n, 0, -1):
if r <= 0:
break
r -= c
count += 1
c += 1
if count % 2 == 0:
top = count + r
bottom = 1 - r
elif count % 2 != 0:
top = 1 - r
bottom = count + r
result = '/'.join([str(top), str(bottom)])
print(result)
๋ผ์ธ์ ์นด์ดํธํ์ฌ count ๋ณ์์ ๊ฐ์ ๋ด๊ณ
r์ ํด๋น ๋ผ์ธ์์ ๋ช ๋ฒ์งธ์ ์์นํ๋์ง๋ฅผ ๋จ๊ธฐ๊ธฐ ์ํด ์ฌ์ฉํ์๋ค
(r์ด 0์ด ์๋ ์ด์ ์์์ด๊ธฐ ๋๋ฌธ์ ๊ณ์ฐ ์์ +์ด๋ฉด -๊ฐ ๋๊ณ , -๋ฅผ ์ ์ฉํ๋ฉด +๊ฐ ๋จ)