백준/백준 파이썬

백준 파이썬 1193번 분수 찾기 (Today I Learn 2023.11.15)

군청레프 2023. 11. 15. 16:54
728x90

11/ 15 파이썬 공부

1. 백준 1193번 분수 찾기

1) 문제
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.

1/1 1/2 1/3 1/4 1/5 …
2/1 2/2 2/3 2/4 … …
3/1 3/2 3/3 … … …
4/1 4/2 … … … …
5/1 … … … … …
… … … … … …

이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 
차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.

X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.

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

3) 출력
첫째 줄에 분수를 출력한다.

>>>코드

x = int(input()) # x 입력 받기
i = 1 # 몇번째 대각선일지 측정하는 변수 i
while i*(i+1)//2 < x: # 1~i까지의 합이 x보다 작을 때 까지
    i += 1
n = i*(i+1)//2 - x # 해당 대각선에서 몇번째 분수일지 측정
if i % 2 == 0: # 짝수 번째 대각선일 경우
    print('%d/%d' %(i-n, n+1))
else: # 홀수 번째 대각선일 경우
    print('%d/%d' %(n+1, i-n))



>>>문제 링크
https://www.acmicpc.net/problem/1193

728x90