티스토리 뷰
문제 설명
첫 번째 분수의 분자와 분모를 뜻하는 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
- 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.
입출력 예 #2
- 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.
제출 코드
2023년 1월 26일
#include <string>
#include <vector>
using namespace std;
int gcd(int a, int b)
{
return b ? gcd(b, a % b) : a;
}
vector<int> solution(int numer1, int denom1, int numer2, int denom2) {
vector<int> answer;
int numer = numer1 * denom2 + numer2 * denom1;
int denum = denom1 * denom2;
int GCD = gcd(numer, denum);
answer.push_back(numer / GCD);
answer.push_back(denum / GCD);
return answer;
}
<aside> 1️⃣ 분모끼리 곱해주고, 분자도 분모에 곱해준 값을 곱해준다.
</aside>
<aside> 2️⃣ 최대공약수를 구한 후 나눠주어 answer에 넣는다.
</aside>
<aside> 3️⃣ 주의해야 할 점은 float 오류가 나올 수 있기 때문에 numer, denum의 값을 완성한 후에 진행해야 한다.
</aside>
'😈 알고리즘 > 🖥️ 프로그래머스' 카테고리의 다른 글
🖥️ 안전지대 (0) | 2023.03.03 |
---|---|
🖥️ 옹알이 (1) (0) | 2023.03.02 |
🖥️ 다음에 올 숫자 📕 (0) | 2023.02.28 |
🖥️ 다항식 더하기 (0) | 2023.02.27 |
🖥️ 저주의 숫자 3 (0) | 2023.02.17 |
댓글