알고리즘/백준

백준 1193: 분수찾기 (Python)

sssbin 2021. 8. 26. 17:29

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

 

1193번: 분수찾기

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

www.acmicpc.net

 

원래 처음 코드는 이랬다,,

근데 하면서도 너무 지저분하다고 생각 + 실행 결과 시간 초과 됨ㅎ

 

x = int(input())
n = 1
a = 1
b = 1

while x!=n :
    if a==1 :
        b += 1
        n += 1
        if x == n: break

        while b!=1 :
            a += 1
            b -= 1
            n += 1
            if x == n: break

        if x == n: break

    if b==1 :
        a += 1
        n += 1
        if x == n: break

        while a!=1 :
            a -= 1
            b += 1
            n += 1
            if x == n: break

        if x == n: break

print('%d/%d'%(a,b))

ㅋㅋㅋㅋㅋ처음에 생각했던 알고리즘,,

 

ㅠㅠ

그래서 다시 규칙을 찾기 시작함

그 결과 성공ㅠ

 

x = int(input())
num = 1
cnt = 1

while x>num :
    num += cnt + 1
    cnt += 1

if cnt%2==0 :
    a = cnt
    b = 1

    for i in range(num-x):
        a -= 1
        b += 1
else:
    a = 1
    b = cnt

    for i in range(num-x):
        a += 1
        b -= 1

print('%d/%d'%(a,b))

 

이 문제만 거의 한 시간 푼 듯..............난 아직 갈 길이 멀었나보다.....