성장일기
[python] 백준 1735 - 분수 합 본문
분자 분모 형태로 숫자가 두 개 주어진다.
두 수의 합을 기약분수형태로 출력하기
🧨문제가 너무 간단해서 반례를 찾기가 어려웠다.
import sys
input=sys.stdin.readline
def gcd(a,b): #최대공약수
if b==0:
return a
else:
return gcd(b,a%b)
n,m=map(int,input().split())
j,k=map(int,input().split())
num=n*k+m*j #약분 전 분자
dem=m*k #약분 전 분모
gcd_=gcd(m,k) #분모끼리의 최대공약수
if dem==0:
print('0 1')
"""
분모가 0이면 0 1 출력(반례찾으러 질문검색에서 봤는데
이렇게 출력하는게 맞는지는 모르겠음 일단 AC)
"""
else:
num=num//gcd_ #약분 후 분자
dem=dem//gcd_ #약분 후 분모
gcd_2=gcd(num,dem)
if gcd_2!=1: #약분 후의 분모 분자의 최대공약수가 1이 아니면
print(num//gcd_2,dem//gcd_2) #최대공약수로 나눠서 출력
else: #약분 후의 분모 분자의 최대공약수가 1이면
print(num,dem) #그냥출력
'알고리즘 문제' 카테고리의 다른 글
[python] 백준 2164 - 카드 2 (0) | 2022.01.05 |
---|---|
[python] 백준 7785 - 회사에 있는 사람 (0) | 2022.01.01 |
[python] 백준 14490 - 백대열 (0) | 2021.12.30 |
[python] 백준 17219 - 비밀번호 찾기 (0) | 2021.12.30 |
[python] 백준 1620 - 나는야 포켓몬 마스터 이다솜 (0) | 2021.12.30 |