## solution  

표에 분수가 지그재그로 나열되어 있는데, 순서대로 번호를 매긴다. 번호를 줄때 그 분수를 출력하는 문제.  

1 - 1/1 (2)  

2,3 - 1/2 2/1 (3)  

4,5,6 - 3/1 2/2 1/3 (4)  

이런식으로 진행된다.  

  

번호가 주어진다면, 일단 분모분자의 합이 몇인지 판단을 해야되고, 그 판단은 1,23,345 숫자 묶음의 수가 1개씩 증가하고 있으므로 판단이 가능할것이다.  

그 다음은 그 숫자를 어떻게 분모분자로 나누느냐 인데, 숫자묶음이 짝수개일때는 분자가 1부터 시작하고, 홀수일때는 반대로 시작한다는걸 이용해서 해보자.  


## CODE  


```python

import sys

input = sys.stdin.readline

input_num = int(input())

group = 2

start = 1

step = 2

while(True):

    if input_num <= start:

        break

    group += 1

    start += step

    step += 1

if group%2 == 0:

    numerator = 1

    denominator = group - 1

    while(True):

        if input_num == start:

            break

        start -= 1

        numerator += 1

        denominator -= 1

else:

    numerator = group - 1

    denominator = 1

    while(True):

        if input_num == start:

            break

        start -= 1

        numerator -= 1

        denominator += 1

print(str(numerator)+'/'+str(denominator))

```

제출한 코드.  

다른사람들의 코드를 보던 중에 발견한것으로, 일단 group%2==1이라고 가정하고 결과를 내보낸 뒤에, group%2==0의 경우 분모,분자만 바꾸는 풀이가 있었다. 중복되는 부분이 많아서 몇줄 줄일수는 있을것 같다.  

변수를 여러줄에 걸쳐서 선언하는 버릇이 있는데 다음 문제부터는 줄 수를 줄여보기로 하자.


```python

import sys

input = sys.stdin.readline

input_num = int(input())

group,start,step = 2,1,2

while(True):

    if input_num <= start:

        break

    group += 1;start += step;step += 1

numerator,denominator = 1, group - 1

while(True):

    if input_num == start:

        break

    start -= 1;numerator += 1;denominator -= 1

if group%2==1: numerator,denominator=denominator,numerator

print(str(numerator)+'/'+str(denominator))

```

수정한 코드.