Published:
Updated:


Solution

# 홀: 1/1
# 짝: 1/2
# 홀: 2/1
# 짝: 3/1
# 홀: 2/2
# 짝: 1/3
# 홀: 1/4
# 짝: 2/3
# 홀: 3/2

# 분자: ja, 분모: mo
# 짝: ja: +1, mo: -1
# 홀: ja: -1, mo: +1

# 지그재그 가다가 더 이상 대각선에 분수가 없으면 "아래"로 이동 (아래를 잘 기억하고 있자)

X = int(input())

ja, mo = 0, 0
# X가 1부터 시작하니까 1로 초기화
cnt_line = 1

# 여기서 line의 개수를 세주는 거임 (시간 초과 땜에)
while cnt_line < X:
    # cnt_line이 이미 1이니 바로 빼주고
    X -= cnt_line
    # 1씩 증가시키자 (라인이 증가한다는 의미로)
    cnt_line += 1

# 라인이 홀수일 때
if cnt_line % 2 == 1:
    # 홀수 -> ja: -1, mo: +1

    # 분모에 X를 저장함
    mo = X
    ja = 1 + (cnt_line - X)
# 짝수일 때
elif cnt_line % 2 == 0:
    # 짝수 -> ja: +1, mo: -1

    # 분자에 X를 저장함
    ja = X
    mo = 1 + (cnt_line - X)

print(str(ja) + '/' + str(mo))

Leave a comment