[Programmers] λΆμμ λ§μ (μλ°)
λ¬Έμ
첫 λ²μ§Έ λΆμμ λΆμμ λΆλͺ¨λ₯Ό λ»νλ 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 ν©λλ€.
νμ΄
μ΄ λ¬Έμ λ μ΅λ곡μ½μλ₯Ό νμ©ν΄μΌνλ λ¬Έμ μ΄λ€.
μ²μ μλ¬ μ½λ
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = new int[2];
if(denom1 > denom2){
//denom2κ° denom1μ λ°°μμΌ λ
if(denom1%denom2 == 0) {
answer[0] = numer1 + (denom1/denom2)*numer2;
answer[1] = denom1;
}else{
answer[0] = (denom2*numer1 + denom1*numer2);
answer[1] = (denom1*denom2);
}
}else if(denom1 < denom2){
if(denom2%denom1 == 0){
answer[0] = (denom2/denom1)*numer1 + numer2;
answer[1] = denom2;
}else{
answer[0] = (denom2*numer1 + denom1*numer2);
answer[1] = (denom1*denom2);
}
}else{
//denom1κ³Ό denom2κ° κ°μ λ
answer[0] = numer1 + numer2;
answer[1] = denom1;
}
return answer;
}
}
μ€λ₯κ° λ°μνλ μ½λμ΄λ€.
! λ¬Έμ : μ£Όμ΄μ§ ν μ€νΈμΌμ΄μ€ 2κ°λ ν΅κ³ΌνμΌλ, μ μΆ μ 15κ°μ€ 5κ°μ ν μ€νΈλ§ ν΅κ³Όνμλ€.
! μμΈ: μ μΆλ ₯ μμμ μλ λ¬Έμ λ§ κ°μ§κ³ ν΄κ²°νλ €λ€λ³΄λ λ무 νλ©΄μ μΈ λ¬Έμ λ§ ν΄κ²°νλ € νλ€.
λν, κΈ°μ½ λΆμμ 쑰건μ κΉλΉ‘νλ€.
λ°λΌμ κΈ°μ½λΆμ 쑰건μ λ§μ‘± μν€κΈ° μν΄ λͺ¨λ μ½λλ₯Ό κ°μμμλ€.
μ΅λ곡μ½μλ₯Ό ꡬνλ μ½λλ₯Ό νμ©νμ¬, ꡬν κ²°κ³Ό κ°μ μ΅λ곡μ½μλ‘ μ½λΆνμ¬ κΈ°μ½λΆμλ₯Ό λ§λ€μλ€.
*μ΅λ곡μ½μλ₯Ό ꡬνλ μ½λλ μλ κΈμ μ°Έκ³ νλ©΄ λλ€.
[Java] μ΅λ곡μ½μμ μ΅μ곡배μ
μλ°λ₯Ό 곡λΆνλ€λ³΄λ©΄ λ¨κ³¨μλμΌλ‘ λ μμ μ΅λ곡μ½μμ μ΅μ곡배μλ₯Ό ꡬνλ λ¬Έμ κ° μμ£Ό λ±μ₯νλ€. μλ μ€λΉν μμ λ λ μλ₯Ό μ λ ₯λ°κ³ λ μμ μ΅λ곡μ½μμ μ΅μ곡배μλ₯Ό ꡬνλ λ¬Έμ
dhdh-study.tistory.com
μ΅μ’ μ½λ
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = new int[2];
answer[0] = (denom2*numer1 + denom1*numer2);
answer[1] = (denom1*denom2);
//μ΅λ곡μ½μ ꡬνκΈ°
int min = (answer[0]<answer[1]) ? answer[0] : answer[1];
int gcd=1;
for(int i=1; i<=min; i++){
if(answer[0]%i==0 && answer[1]%i==0){
gcd = i;
}
}
answer[0] = answer[0] / gcd;
answer[1] = answer[1] / gcd;
return answer;
}
}