본문 바로가기
Algorithm

[구현/수학] 백준 14490 백대열 - 파이썬(Python)

by jangThang 2022. 3. 5.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    14490번: 백대열

    n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000)

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     두 수의 최대공약수로 나누어서, 최소의 자연수로 비를 표현하는 문제입니다.

     

    2022.02.05 - [Algorithm] - [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법

     

    [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법

     유클리드 호제법을 이용하면 두 수의 최대공약수를 구할 수 있습니다. 최대공약수는 두 수의 공통인 최대 약수를 말합니다. [ Contents ] 1. 유클리드 호제법 (Euclidean Algorithm) 두 자연수 X, Y가 있을

    star7sss.tistory.com

     최대공약수는 유클리드 호제법을 통해서 구할 수 있습니다. 단순히 1씩 올리면서 약수를 구하면 시간초과가 납니다.

     

     

     

    3. 코드

    n, m = map(int, input().split(':'))
    
    #유클리드 호제법
    def gcd(x, y):
        if x < y:
            x, y = y, x
        while y != 0:
            x %= y
            x, y = y, x
        return x
    
    gcd = gcd(n, m)
    print(f"{n//gcd}:{m//gcd}")

     

     

    star가 되고나서 Tistory

    반응형

    댓글