📌문제
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
📌답
idea) 기약분수를 생각하지 말고 일단 분모를 서로 곱해서 계산한 뒤
결과값의 분자, 분모(numer3, denom3)의 최대공약수로 분자 분모를 나눠준다.
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = new int[2];
int numer3=0; //두 분수를 더한 결과의 분자
int denom3=0; //두 분수를 더한 결과의 분모
int n=0; //더한 결과의 분자 분모 중 더 작은 값을 n에 넣을 예정
int m=1; //더한 결과의 분자 분모의 최대공약수를 m에 넣을 예정
int resultd=0; //최종 분자
int resultn=0; //최종 분모
denom3 = denom1*denom2;
numer3 = numer1*denom2 + numer2*denom1;
if(denom3-numer3<0) { //더한 결과에서 분자 분모 중 더 작은 값을 n에 넣겠다.
n=denom3;
}
else {n=numer3;}
for(int i=2;i<=n;i++) { //최대공약수 m 구하기
if(numer3%i==0 && denom3%i==0)
{m=i;}
} System.out.println(m);
resultd=denom3/m; //기약분수로 바꾼 분자(구하려는 답)
resultn=numer3/m; //기약분수로 바꾼 분모(구하려는 답)
answer[0]=resultn;
answer[1]=resultd;
return answer;
}
}
📢
1. 개발자 준비생이 공부한 내용을 정리한 글입니다. 내용에 오류가 있을 수 있습니다.
2. 위와 같은 이유로 내용에 대한 지적과 조언은 감사하게 받습니다.
3. 이 글의 내용은 계속 공부함으로써 언제든지 추가/수정 될 수 있습니다.
'Coding Test > 프로그래머스 - JAVA' 카테고리의 다른 글
프로그래머스 JAVA Lv.0 짝수 홀수 개수 (0) | 2024.11.29 |
---|---|
프로그래머스 JAVA Lv.0 배열 뒤집기 (2) | 2024.11.15 |
프로그래머스 JAVA Lv.0 양꼬치 (0) | 2024.11.15 |
프로그래머스 JAVA Lv.0 두 수의 나눗셈 (0) | 2024.11.15 |