알고리즘-python/백준 문제
[백준/1193/파이썬(Python3)] 분수 찾기
빅데이터1020
2021. 7. 9. 10:28
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