개발/코딩테스트
1. [정답/복습] 분수의 덧셈
은다민
2023. 4. 3. 17:21
몸풀기로 쉬운 코테 몇개 풀다가 생각지도 않은곳에서 시간을 너무 끌어버렸다.
바로 분수의 덧셈.
일단 정답은 맞췄지만 정답 도출까지 시간이 너무 오래걸렸기에 복습차 기록을 남긴다.
문제 설명
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
입출력 예 #1
- 1/2 + 3/4 = 5/4 입니다. 따라서 [5,4]를 return 합니다.
입출력 예 #2
- 9/2 + 1/3 = 29/6 입니다. 따라서 [29,6]을 return 합니다.
using System;
public class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = new int[2];
var top = numer1 * denom2 + numer2 * denom1;
var bottom = denom1 * denom2;
var max = 0;
for(int i = 1; i <= top; i++)
{
// 분모 그리고 분자를 i로 나누어 0이 될때가 최대공약수이다.
if(top % i == 0 && bottom % i == 0)
{
max = i;
}
}
answer[0] = top / max;
answer[1] = bottom /max;
return answer;
}
}
1보다 큰 최대 공약수가 없을땐 max에 1이 들어간다.
즉 분모와 분자가 기존 그대로 삽입됨.
더 나은 방법이나 질문은 댓글 달아주세용 :)
728x90