SMALL
문제 출처
풀이 코드
x=int(input())
cnt, start_n, end_n=0, 0, 0
while end_n < x:
cnt+=1
end_n += cnt
start_n = end_n - cnt
if cnt % 2 == 0:
a = x - start_n
b = cnt+1-a
else:
a = end_n-x + 1
b = cnt+1-a
print (str(a)+'/'+str(b))
빨간색 화살표 방향으로 규칙이 있기 때문에 x가 속할 마지막 라인(?)은 while 문으로 구할 수 있습니다.
x가 속할 마지막 라인을 구한 뒤
그 라인이 짝수 번 째 라인이면
- 분자는 1부터 x위치까지 증가시키고
- 분모는 (분자+분모=cnt+1) 이라는 점을 활용해서 구하면 됩니다.
그 라인이 홀수 번 째 라인이면
- 분자는 해당 라인의 마지막 숫자부터 x위치까지 감소시키고
- 분모는 (분자+분모=cnt+1) 이라는 점을 활용해서 구하면 됩니다.
LIST
'알고리즘-python > 백준 문제' 카테고리의 다른 글
[백준 / 10250 / 파이썬(Python3)] ACM 호텔 (0) | 2021.07.16 |
---|---|
[백준/2869/파이썬(Python3)] 달팽이는 올라가고 싶다 (0) | 2021.07.12 |
[백준/1927/파이썬(Python3)] 최소힙 (0) | 2021.07.08 |
[백준/2292/파이썬(Python3)] 벌집 (0) | 2021.07.07 |
[백준/1712/파이썬(Python3)] 손익분기점 (0) | 2021.07.07 |