250x250
Notice
나의 공부 일기
Python) 프로그래머스 Lv0 분수의 덧셈 문제풀이 본문
728x90
분수의 덧셈
첫번째 분수의 분자를 뜻하는 numer1 과 분모를 뜻하는 denom1이 있고,
두번째 분수의 분자를 뜻하는 numer2 와 분모를 뜻하는 denom2이 있습니다.
이들을 합친 값을 기약분수로 나타냈을 때 분자와 분모를 순서대로 담은 리스트를 반환하게 만들면 됩니다.
여기서 분수의 덧셈은 분모의 값을 같게 맞춰준다음 약분을 하면 되는것인데 문제에서는 기약분수 즉 약분을 할 필요없이 분자와 분모를 순서대로 배열에 담아주면 됩니다.
초기값
def solution(num1, num2):
answer = 0
return answer
파이썬에서는 import로 패키지를 불러올 수 있습니다.
그중 math를 불러와 사용해보겠습니다.
math 에는 그 수의 최소공배수를 구하는 gcd 라는 함수가 있습니다.
기약분수 분자: 첫번째 분수의 분자* 두번째 분수의 분모 와 두번째 분수의 분자 * 첫번째 분수의 분모 를 합친 변수를 생성합니다.
기약분수 분모 : 첫번째 와 두번째 분수의 분모들의 곱을 한 변수를 생성합니다.
최소공배수 = math.gcd(기약분수의 분자,기약분수의 분모) 를 하여 최소공배수를 찾습니다.
결과값에 분모가 가장 작게 만들어줘야 하므로 분자 분모 각각 // 최소공배수를 해줍니다.
import math
def solution(numer1, denom1, numer2, denom2):
numer = numer1*denom2+numer2*denom1
denom = denom1*denom2
gcd = math.gcd(denom,numer)
answer = [numer//gcd,denom//gcd]
return answer
728x90
'프로그래머스 > 입문' 카테고리의 다른 글
Python) 프로그래머스 Lv0 숫자 비교하기 문제풀이 (0) | 2023.10.19 |
---|---|
Python) 프로그래머스 Lv0 두 수의 나눗셈 문제풀이 (0) | 2023.10.19 |
Python) 프로그래머스 Lv0 몫 구하기 문제풀이 (0) | 2023.10.19 |
Python) 프로그래머스 Lv0 두 수의 곱 문제풀이 (0) | 2023.10.19 |
Python) 프로그래머스 Lv0 두 수의 차 문제풀이 (0) | 2023.10.19 |