본문 바로가기
알고리즘-python/백준 문제

[백준/1193/파이썬(Python3)] 분수 찾기

by 빅데이터1020 2021. 7. 9.
SMALL

 

문제 출처

 

1193번: 분수찾기

첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.

www.acmicpc.net

 

풀이 코드

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