개발계발
프로그래머스 - 분수의 덧셈(120808) 본문
문제 설명
제한사항
접근방식
- denom1, denom2의 최소공배수를 구함
- 배열에 분자 * (최소공배수 / 분모)끼리 더한 값과, 최소 공배수를 담아 반환
풀이 코드
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def lcm(a, b):
return a * b // gcd(a, b)
def solution(numer1, denom1, numer2, denom2):
lcm_value = lcm(denom1, denom2)
adjusted_numer1 = numer1 * (lcm_value // denom1)
adjusted_numer2 = numer2 * (lcm_value // denom2)
total_numer = adjusted_numer1 + adjusted_numer2
final_gcd = gcd(total_numer, lcm_value)
reduced_numer = total_numer // final_gcd
reduced_denom = lcm_value // final_gcd
return [reduced_numer, reduced_denom]
'알고리즘' 카테고리의 다른 글
프로그래머스 - 주사위 게임3(181916) (0) | 2024.04.23 |
---|---|
프로그래머스 - 안전지대(120866) (0) | 2024.04.23 |
프로그래머스 - 다항식 더하기(120863) (0) | 2024.04.23 |
프로그래머스 - 특이한 정렬(120880) (0) | 2024.04.23 |
프로그래머스 - 평행(120875) (0) | 2024.04.19 |