[BOJ]193:スコアの検索



🔒 例

>> 14

2/4

🔧 に答える

1. x = int(sys.stdin.readline().rstrip())
2. 규칙 찾기 : (1/1) - (1/2 - 2/1) - (3/1 - 2/2 - 1/3) 
    		- (1/4 - 2/3 - 3/2 - 4/1) - ...
    2.1 (1) - (2) - (3) - (4) - ... 로 개수 증가
    2.2 n: 몇 번째 ()인지 파악    
   
3. 케이스 나누기
    3.1 분모가 홀수로 시작하는 경우: n/1 -> n-i/1+i -> 1/n 
    3.2 분모가 짝수로 시작하는 경우: 1/n -> 1+i/n-i -> n/1
    3.3 i == tmp % n

🔑 答案用紙

import sys

x = int(sys.stdin.readline().rstrip())

tmp = x
for n in range(1, x+1):
    tmp -= n
    # <= 주의 !!!
    if tmp <= 0:
        if n % 2 == 0:
            c = n - abs(tmp)
            p = 1 + abs(tmp)
        else:
            c = 1 + abs(tmp)
            p = n - abs(tmp)
        break

print(str(c)+'/'+str(p))

💡 コンセプト