분수의 덧셈
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]
-참고
(분수를 정확하게 계산하는 방법)
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