728x90
x=int(input())
dp = [0,1]
result = 1
cnt = 1
while dp[-1]<x:
cnt += 1
result += cnt
dp.append(result)
#분자/분모 -> cnt가 홀짝에 따라 달라짐
if cnt%2: #odd
ja=cnt+1-x+dp[-2]
mo=x-dp[-2]
else: #even
ja=x-dp[-2]
mo=cnt+1-x+dp[-2]
print(f'{ja}/{mo}')
차례대로 배치했을 때 x번째 수가 몇번째 줄인지 찾기 위해 dp라는 리스트에 담았다.
해당되는 줄(cnt로 체크)에 따라 위로 올라가는지 아래로 내려가는지 판단했고, 그에따라 분자와 분모를 달리줬다.
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 2839 설탕배달 (0) | 2021.02.07 |
---|---|
[백준] 2775 부녀회장이 될테야 (0) | 2021.02.07 |
[백준] 2504 괄호의값 (0) | 2021.02.07 |
[백준] 3985 롤케이크 (0) | 2021.02.06 |
[백준] 2386 도비의 영어공부 (0) | 2021.02.06 |