맛동산

(파이썬)백준 알고리즘 1193번 분수찾기 본문

파이썬/알고리즘

(파이썬)백준 알고리즘 1193번 분수찾기

오지고지리고알파고포켓몬고 2017. 5. 25. 23:01

백준 알고리즘 저지 1193번 문제 (https://www.acmicpc.net/problem/1193)

 

 

 

단순하게 나열해봄

좌하우상 대각을 기준으로 원소의 개수 s, 분자 분모의 합 m

입력이 1이면 s=1, m=2

입력이 2이면 s=3, m=3

입력이 3이면 s=3, m=3 (대각 전체 원소를 만들고 아래서 위로 훑는지. 위에서 아래로 훑는지는 나중에 판단)

입력이 4이면 s=6, m=4

-> 입력(n)이 속한 대각까지 모두 나열한 합이 s

 

그리고 분자 분모의 합이 훑는 방향을 나타냄으로 그에 따른 계산

 

 
s=1
m=2
input=int(input())
while True:
    if input<=s:#4<=1 4<=3 4<=6
        break
    else:
        s+=m#1+2 1+2+3
        m+=1#2+1 3+1
#input=4 s=6 m=4
if input==1:
    print('1/1')
elif m%2==0:
    l=[]
    for i in range(1,m):#1~3 < 4
        l.append('%d/%d'%(m-i,i))#3/1 2/2 1/3
    print(l[input-(s-(m-1))-1])#
elif m%2==1:
    l=[]
    for i in range(1,m):
        l.append('%d/%d'%(i,m-i))
    print(l[input-(s-(m-1))-1])

Comments