Python/online judge

백준 [1193.분수찾기] | Python

구름솜:D 2024. 1. 29. 17:41
728x90

✏️ 문제

https://www.acmicpc.net/problem/1193

 

1193번: 분수찾기

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

www.acmicpc.net

 

✏️ 풀이방법

1. 보기 쉽게 정리해보니 line이 짝수이면 분모가 오름차순, 분자가 내림차순 홀수이면 분모가 내림차순, 분모가 오름차순을 발견

2. line의 수만큼 분수가 나열되기에 while문을 반복해서 line을 찾음

3. 1부터 line의 수만큼 분모리스트(d)와 분자리스트(n)에 숫자 담기

4. line인의 홀수,짝수 여부에 따라 내림차순 출력 정의 

 

 

📌 코드

x = int(input())
line = 1
d = [] #분모denominator
n = [] #분자numerator

while True:
        if x-line<=0:
            break
        x=x-line
        line+=1

for i in range(1,line+1):
    d.append(i)
    n.append(i)
    
#line이 짝수이면 분자가 내림차순, 홀수이면 분모가 내림차순
if line%2 ==0:
    n.sort(reverse=True)
else:
    d.sort(reverse=True)
print('%d/%d'%(d[x-1],n[x-1]))

 

 

📌 결과

1     #입력
1/1   #출력
2     #입력
1/2   #출력
3     #입력
2/1   #출력
4     #입력
3/1   #출력
7     #입력
1/4   #출력

 

 

🤔 시행착오.1

x = int(input())
line = 1
d = [] #분모denominator
n = [] #분자numerator

while True:
        if x-line<=0:
            break
        x =x-line
        line+=1

for i in range(1,line+1):
    d.append(i)
    n.append(i)
n.sort(reverse=True)
print('%d/%d'%(d[x-1],n[x-1]))
#입력
6

#출력
3/1       #정상출력1/3

- line이 홀수이면 거꾸로 출력