728x90
문제 설명
첫 번째 분수의 분자와 분모를 뜻하는 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 합니다.
답
using System;
public class Solution
{
public int[] solution(int numer1, int denom1, int numer2, int denom2)
{
var 분모 = denom1 * denom2;
var 분자1 = numer1 * denom2;
var 분자2 = numer2 * denom1;
var 분자 = 분자1 + 분자2;
var gcd = GetGCD(분자, 분모);
int[] answer = new int[] { 분자 / gcd, 분모 / gcd };
return answer;
}
public static int GetGCD(int a, int b)
{
int max = Math.Max(a, b);
int min = Math.Min(a, b);
int mod = max;
int i = 0;
while (mod != 0)
{
mod = max % min;=
max = min;
min = mod;
} // gcd = max when escape while loop
Console.WriteLine("GCD : {0}", max);
return max;
}
}
풀이
C#으로 코딩테스트 문제 처음 풀어봐서 쉬운걸로 풀어봤다
[출처]
https://school.programmers.co.kr/learn/courses/30/lessons/120808
728x90
'코딩테스트' 카테고리의 다른 글
[C#] 올바른 괄호 (0) | 2024.02.21 |
---|---|
[JS] 배열 조각하기 (0) | 2024.02.20 |
[JS] 주행거리 비교하기 (0) | 2024.02.20 |
[JS] 주사위 게임 3 (0) | 2024.02.20 |
[JS] K번째수 (0) | 2024.02.20 |