프로그래머스 | 분수의 덧셈 [파이썬 Python]

2023. 2. 28. 17:51·Algorithm/프로그래머스
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

코드

import math

def solution(numer1, denom1, numer2, denom2):
    b = denom1 * denom2
    a = (numer1 * denom2) + (numer2 * denom1)
    
    gcd=math.gcd(a,b)
    a = a // gcd
    b = b // gcd
    
    answer = [a, b]
    return answer

 

$\frac{numer1}{denom1}$, $\frac{numer2}{denom2}$ 의 합을 기약분수로 나타내는 문제이다.

 

처음에는 denom1과 denom2 사이의 관계를 고려하여 

1) denom1 % denom2 == 0 일 때,
2) denom2 % denom1 == 0 일 때,
3) denom1과 denom2가 서로소일 때

세가지로 나눠 조건문을 세워보았지만 결국 최종적으로 기약분수 형태로 나타내야 하기 때문에
그냥 서로소인 경우에 계산하는 방식처럼 분자는 분모를 곱해 더하고, 분모는 분모끼리 곱해 합을 먼저 구하는 방식을 택했다.

 

기약분수로 나타내기 위해서는 분자 분모 사이의 최대공약수를 구해 나눠줘야 한다.

최대공약수를 구하기 위해 math 라이브러리를 사용하여 해결하였다.

math.gcd를 사용하면 쉽게 두 수 사이의 최대 공약수를 구할 수 있다.

* 최소공배수는 math.lcm

저작자표시 (새창열림)
'Algorithm/프로그래머스' 카테고리의 다른 글
  • 프로그래머스 | 공 던지기 [파이썬 python]
  • 프로그래머스 | 2차원으로 만들기 [파이썬 python]
  • 프로그래머스 | 특정 문자 제거하기 [파이썬 python]
  • 프로그래머스 | 최빈값 구하기 [파이썬 Python]
dduniverse
dduniverse
  • dduniverse
    dduniverse
    dduniverse
  • 전체
    오늘
    어제
    • 분류 전체보기 (243)
      • Algorithm (123)
        • 알고리즘 이론 (8)
        • 백준 (19)
        • 프로그래머스 (83)
        • 구름 알고리즘 먼데이 챌린지 (13)
      • 빅데이터분석기사 (10)
        • 통계 (4)
        • 실기 (6)
      • KT에이블스쿨 (26)
      • FrontEnd (11)
        • React (5)
        • 기타 (6)
      • BackEnd (18)
        • Django (15)
        • Spring (3)
      • DS & ML (11)
        • Machine Learning (9)
        • Kaggle (2)
      • TIL (44)
        • python (22)
        • javascript (3)
        • 오류해결 (10)
        • 기타 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 관리
    • 글쓰기
  • 링크

  • 인기 글

  • hELLO· Designed By정상우.v4.10.0
dduniverse
프로그래머스 | 분수의 덧셈 [파이썬 Python]
상단으로

티스토리툴바