프로그래머스/파이썬_입문

분수의 덧셈

싱싱한복초이 2024. 10. 4. 03:37

https://school.programmers.co.kr/learn/courses/30/lessons/120808

 

프로그래머스

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

programmers.co.kr

[문제설명]

첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

 

[나의 풀이]

import math

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

최대공약수를 구하는 방법을 몰라서 검색해봄

 

[다른 풀이]

from fractions import Fraction

def solution(denom1, num1, denum2, num2):
    answer = Fraction(denom1, num1) + Fraction(denom2, num2)
    return [answer.numerator, answer.denominator]

-참고

(분수를 정확하게 계산하는 방법)

https://wikidocs.net/106676

 

020 분수를 정확하게 계산하려면? ― fractions

fractions는 유리수를 계산할 때 사용하는 모듈이다. > 유리수(rational number)란 두 정수의 비율 또는 분수 형식으로 나타낼 수 있는 수를 말한다. ## …

wikidocs.net

 

def solution(denom1, num1, denom2, num2):
    answer = []
    s = 0

    denum0 = (denom1*num2) +(denom2*num1)
    num0 = num1*num2

    for i in range(min(denom0,num0),0,-1):
        if denom0%i == 0 and num0%i == 0:
            s = i
            break

    denom0 /= s
    num0 /= s
    answer.append(denom0)
    answer.append(num0)

    return answer

 

 

a /= b는 a = a/b를 의미함 "왼쪽 변수에 오른쪽 값을 나누고 그 결과를 왼쪽 변수에 할당한다"

 

리스트이름.append(데이터값) 은 리스트의 맨 마지막 부분에 데이터를 삽입하는 역할을 함

 

 

-참고

(range 함수)

https://ctkim.tistory.com/entry/python-range-function

 

[Python 내장 함수] range() : 일정 범위의 연속된 정수 생성

더보기 ##필요 선행 지식 1. 파이썬 리스트(List) 정리 및 사용법 2. 파이썬 반복문 정리 및 사용법 1.range()함수란? 파이썬에서 range()함수는 일정 범위의 연속된 정수를 생성하는데 사용됩니다. 이

ctkim.tistory.com

(나눗셈 나머지, 몫 구하기)

https://dev-note-97.tistory.com/65

 

[Python] 파이썬 나눗셈 나머지, 몫 구하기 ( / , %, // , divmod)

파이썬에서 나눗셈 연산을 시행한 결과를 얻는 방식은 다음과 같이 4개가 있습니다. ('/', '%', '//', divmod()) 1. "/" : 단순 나눗셈 - 가장 기본적인 나눗셈 (float형) a = 5 b = 3 print("a 나누기 b: ", a/b) # a

dev-note-97.tistory.com

 

'프로그래머스 > 파이썬_입문' 카테고리의 다른 글

나머지 구하기  (0) 2024.10.05
배열 두 배 만들기  (0) 2024.10.05
숫자 비교하기  (0) 2024.10.04
두 수의 나눗셈  (0) 2024.10.03
몫 구하기  (0) 2024.10.03