Dev_from the Bottom

#36. Algorithm26_python) 백대열_백준 14490 본문

Algorithm_study

#36. Algorithm26_python) 백대열_백준 14490

고무라면 2022. 6. 9. 20:11

문제) 백대열

대열이는 욱제의 친구다.

    - “야 백대열을 약분하면 뭔지 알아?”
    - “??”
    - “십대일이야~ 하하!”
n:m이 주어진다. 욱제를 도와주자. (...)

입력)

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

출력)

두 수를 최대한으로 약분하여 출력한다.
 

문제 링크) https://www.acmicpc.net/problem/14490

 

 

 

 


 

Step1) 최대공약수 메서드 

def GCD(n1, n2):
    for i in range(min(n1, n2), 0, -1):
        if n1 % i == 0 and n2 % i == 0:
            return i
            break
            
n1 = 18
n2 = 24
print(GCD(n1, n2))

>>>
6

 

Step2) 정답

# 최대공약수 매서드
def GCD(n1, n2):
    for i in range(min(n1, n2), 0, -1):
        if n1 % i == 0 and n2 % i == 0:
            return i
            break

# 입력
n, m = map(int, input().split(':'))    # ':'로 구분

# 최대공약수
k = GCD(n, m)

# int로 정답 출력
print(f'{int(n/k)}:{int(m/k)}')

>>>
100:10
10:1

# 배운 점

  • 최대공약수 로직 리마인드
  • input( ).split(':')

 

# 소회

  • 쉬운 문제

 

Comments