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 |
Tags
- 백준
- 우분투
- ChatGPT
- Kaggle
- 파이썬
- dacon
- leetcode
- 맥북
- 캐치카페
- github
- Git
- 더현대서울 맛집
- programmers
- 데이콘
- 금융문자분석경진대회
- 편스토랑
- SW Expert Academy
- 프로그래머스 파이썬
- Docker
- PYTHON
- 프로그래머스
- gs25
- Baekjoon
- Real or Not? NLP with Disaster Tweets
- 편스토랑 우승상품
- 자연어처리
- 코로나19
- ubuntu
- AI 경진대회
- hackerrank
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 분수의 덧셈 (Python) 본문
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 분수의 덧셈 입니다.
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
👨🏻💻 문제 풀이
분수의 덧셈은 아래의 과정을 통해 진행됩니다.
- 첫째, 두 분수를 통분한다.
- 둘째, 분자끼리 더한다.
- 셋째, 합을 기약분수 꼴로 적는다.
먼저, 두 분수를 통분하기 위해서는 두 분모의 최소 공배수를 구해야합니다.
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
GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07
1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.
github.com
'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 |