Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Kaggle
- gs25
- Baekjoon
- 데이콘
- Real or Not? NLP with Disaster Tweets
- 캐치카페
- 프로그래머스 파이썬
- 금융문자분석경진대회
- 맥북
- 코로나19
- ChatGPT
- dacon
- github
- SW Expert Academy
- 편스토랑 우승상품
- Git
- 자연어처리
- 파이썬
- 우분투
- AI 경진대회
- programmers
- leetcode
- Docker
- 백준
- 프로그래머스
- PYTHON
- hackerrank
- ubuntu
- 편스토랑
- 더현대서울 맛집
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 분수의 덧셈 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 프로그래머스의 분수의 덧셈 입니다.
👨🏻💻 문제 풀이
분수의 덧셈은 아래의 과정을 통해 진행됩니다.
- 첫째, 두 분수를 통분한다.
- 둘째, 분자끼리 더한다.
- 셋째, 합을 기약분수 꼴로 적는다.
먼저, 두 분수를 통분하기 위해서는 두 분모의 최소 공배수를 구해야합니다.
from math import gcd
def get_lcm(A, B):
return A * B // gcd(A, B)
denom_lcm = get_lcm(A=denom1, B=denom2)
분모의 최소 공배수를 구했으면 각 분수의 분자도 분모가 최소공배수로 변한만큼 바꾸어 주어야하므로
각 분자에 최소공배수 // 분모 값 만큼 곱해 주고 이를 더해줍니다.
answer_numer = numer1 * (denom_lcm // denom1) + numer2 * (denom_lcm // denom2)
answer_denom = denom_lcm
마지막으로 기약분수로 만들어주기 위하여 위에서 구한 분자와 분모의 최대공약수를 구하고
위에서 구한 정답 분자 정답 분모값을 최대 공약수 값으로 나누어주면 끝!
from math import gcd
def get_gcd(A, B):
return gcd(A, B)
numer_denom_gcd = get_gcd(A=answer_numer, B=answer_denom)
answer = [answer_numer // numer_denom_gcd, answer_denom // numer_denom_gcd]
👨🏻💻 코드 ( Solution )
from math import gcd
def get_lcm(A, B):
return A * B // gcd(A, B)
def get_gcd(A, B):
return gcd(A, B)
def solution(numer1, denom1, numer2, denom2):
answer = []
denom_lcm = get_lcm(A=denom1, B=denom2)
answer_numer = numer1 * (denom_lcm // denom1) + numer2 * (denom_lcm // denom2)
answer_denom = denom_lcm
numer_denom_gcd = get_gcd(A=answer_numer, B=answer_denom)
answer = [answer_numer // numer_denom_gcd, answer_denom // numer_denom_gcd]
return answer
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[Programmers] 짝수 홀수 개수 (Python) (0) | 2023.02.23 |
---|---|
[Programmers] 명예의 전당 (1) (Python) (0) | 2023.02.22 |
[Programmers] 옹알이 (2) (Python) (0) | 2023.02.20 |
[Programmers] 카드 뭉치 (Python) (0) | 2023.02.19 |
[Programmers] 컨트롤 제트 (Python) (0) | 2023.02.18 |
Comments