본문 바로가기

Python ◡̈/차근차근 Python

[백준 python] 1193 분수찾기

 

www.acmicpc.net/problem/1193

 

1193번: 분수찾기

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

www.acmicpc.net

 

 

<problem>

 

 

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

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

 

 

<input>

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

<output>

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

 


 

<example>

 


 

<solution ①>

 

- X번째 분수를 구하기 위해 X 값을 입력받아 변수 X에 저장

- 분수의 분모, 분자의 합이 2부터 시작될 때에, 합이 같은 분수는 대각선으로 합-1개씩 존재하므로, 

    while문은 i < X 조건을 만족할 때까지 X -= i, i += 1 을 반복하여 구해야 하는 분수의 분모, 분자의 합을 구함

     - if i % 2 == 0: i가 2의 배수인 경우 분모가 큰 수에서 작아지는 식으로 구현

        else: 반대로 분자가 큰 수에서 작아지는 식으로 구현

- 마지막으로 출력 시, 분수의 형태로 출력하므로, sep 속성 사용하여 여러 개의 값 출력

    - print(a, "/", b, sep = "")

 


 

ⓒ ⓞ ⓓ ⓔ

 


 

ⓣ ⓔ ⓢ 

 


 

ⓕ ⓘ ⓝ ⓐ ⓛ    ⓒ ⓞ ⓓ ⓔ