반응형
안녕하세요.
강렬한 스포트라이트 입니다!
하기의 문제를 Python 언어를 사용하여 구현하고자 합니다.
<문제 설명>
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
<제한 사항>
0 <numer1, denom1, numer2, denom2 < 1,000
<입출력 예>
numer1 | denom1 | numer2 | denom2 | result |
1 | 2 | 3 | 4 | [5,4] |
9 | 2 | 1 | 3 | [29,6] |
1) 해당 문제를 어떻게 풀지 비교적 상세하게 정리해봅니다.
2) 최대공약수를 구해주는 gcd()함수를 사용하지 않고 구현한 코드입니다.
def solution(numer1, denom1, numer2, denom2):
d=denom1*denom2; n=numer1*denom2+denom1*numer2
for i in range(min(d,n),0,-1): #최대공약수 gcd함수 사용하지 않고 구현함
if d%i==0 and n%i==0:
gcd=i
break #break를 해줘야 조건을 충족하는 가장 큰 값으로 변수 gcd에 저장될 수 있음
return [n/gcd,d/gcd]
3) 추가로 gcd() 함수를 사용하여 구현한 코드입니다.
import math #gcd()함수를 사용하고자 import함
def solution(numer1, denom1, numer2, denom2):
d=denom1*denom2; n=numer1*denom2+denom1*numer2
gcd=math.gcd(d,n) #gcd()함수 사용
return [n/gcd,d/gcd]
해보시고 문의사항이 있으시면 댓글로 남겨주세요.´◡`
감사합니다!
반응형
SMALL
'PS > programmers' 카테고리의 다른 글
[Lv. 0] 외계행성의 나이(Python) (0) | 2023.02.20 |
---|---|
[Lv. 0] 짝수 홀수 개수(Python) (2) | 2023.02.17 |
[Lv. 0] 문자열 뒤집기(Python) (0) | 2023.02.16 |
[Lv. 0] 머쓱이보다 키 큰 사람(Python) (0) | 2023.02.15 |
[Lv. 0] 최빈값 구하기(Python) (0) | 2023.02.13 |