본문 바로가기

코딩테스트

[C#] 분수의 덧셈

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