본문 바로가기
알고리즘/프로그래머스(Lv.0)

[프로그래머스] Lv.0 분수의 덧셈

by cejin 2023. 11. 2.

1. 문제

매개변수 : 첫 번째 분수의 분자(number1)와 분모(denom1), 두 번째 분수의 분자(number2)와 분모(denom2)

리턴값 : 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열

조건 : 0 < number1, denom1, number2, denom2 < 1,000

 

 

2. 풀이

1) 분모 = 분모1 * 분모2

2) 분자 = 분자1*분모2 + 분자2*분모1

3) 분모 > 분자면 max는 분모, min은 분자, 아니면 max는 분자, min은 분노

- 최대공약수 ea 구하기!

4) 최대공약수 : 유클리드 호제법 이용

public static int gcd(int p, int q)
 {
	if (q == 0) return p;
	return gcd(q, p%q);
 }

 

5) 정답 배열 = {분자 / 최대공약수, 분모 / 최대공약수}

 

* 풀 코드 : https://github.com/cejinn/programmers_lv0/blob/main/basic037.java