[프로그래머스] 분수의 덧셈 문제 풀이(코딩테스트 입문 Lv. 0) - 파이썬 python
2022. 12. 8. 19:15ㆍ네카라쿠배 취준반 - 프로그래머스 문제 풀이
0. 자세한 설명은 YouTube 영상으로
1. 단순 gcd를 활용한 Solution
# ver1
def solution(denum1, num1, denum2, num2):
# 1. 두 분수의 합 계산
boonmo = num1 * num2
boonja = denum1 * num2 + denum2 * num1
# 2. 최대공약수 계산
start = max(boonmo, boonja)
gcd_value = 1
for num in range(start, 0, -1):
if boonmo % num == 0 and boonja % num == 0:
gcd_value = num
break
# 3. gcd 로 나눈 값을 answer에 담기
answer = [boonja / gcd_value, boonmo / gcd_value]
return answer
2. 최적화된 gcd를 활용한 Solution
# ver2
def gcd(a, b):
if a % b == 0:
return b
return gcd(b, a % b)
def solution(denum1, num1, denum2, num2):
# 1. 두 분수의 합 계산
boonmo = num1 * num2
boonja = denum1 * num2 + denum2 * num1
# 2. 최대공약수 계산
gcd_value = gcd(boonmo, boonja)
# 3. gcd 로 나눈 값을 answer에 담기
answer = [boonja / gcd_value, boonmo / gcd_value]
return answer
3. math library 를 활용한 Solution
# ver3
import math
def solution(denum1, num1, denum2, num2):
# 1. 두 분수의 합 계산
boonmo = num1 * num2
boonja = denum1 * num2 + denum2 * num1
# 2. 최대공약수 계산
gcd_value = math.gcd(boonmo, boonja)
# 3. gcd 로 나눈 값을 answer에 담기
answer = [boonja / gcd_value, boonmo / gcd_value]
return answer
4. YouTube 영상에 자세한 내용을 정리했으니 참고하세요
'네카라쿠배 취준반 - 프로그래머스 문제 풀이' 카테고리의 다른 글
[프로그래머스] 콜라 문제 풀이(코딩테스트 입문 Lv. 1) - 파이썬 python (0) | 2022.12.15 |
---|---|
[프로그래머스] 겹치는 선분의 길이 문제 풀이(코딩테스트 입문 Lv. 0) - 자바 Java (0) | 2022.12.10 |
[프로그래머스] 타겟넘버 문제 풀이(DFS BFS 재귀함수 Lv. 2) - java 자바 (0) | 2022.03.30 |
[백준 1018] 체스판 다시 칠하기 (완전탐색) - java 자바 (0) | 2022.03.07 |
[2021 카카오 코딩테스트] 키패드 누르기 - 자바 java (4) | 2022.01.21 |