개발 공부/코딩테스트
[2일차][프로그래머스, 120808번, Lv. 0] 분수의 덧셈
upcake_
2022. 12. 14. 14:53
반응형
문제
내 풀이
class Solution {
public int[] solution(int denum1, int num1, int denum2, int num2) {
int tempDenum1 = denum1 * num2,
tempDenum2 = denum2 * num1,
tempNum = num1 * num2;
int answerDenum = tempDenum1 + tempDenum2,
answerNum = tempNum;
int i = 2;
while(true) {
if(answerDenum % answerNum == 0) {
answerDenum /= answerNum;
answerNum /= answerNum;
} else if(answerNum % answerDenum == 0) {
answerNum /= answerDenum;
answerDenum /= answerDenum;
}
if(answerDenum % i == 0 && answerNum % i == 0) {
answerDenum /= i;
answerNum /= i;
i = 2;
}
if((i == answerDenum || i == answerNum) || (answerDenum == 1 && answerNum == 1)) {
break;
} else {
i++;
}
}
int[] answer = {answerDenum, answerNum};
return answer;
}
}
채점 결과
피드백
처음에 로직생각하는게 많이 어려웠고, 두번째로 1만 넣거나, 같은 숫자만 넣었을때의 테스트케이스를 해결하는 것도 어려웠습니다.
위에 문제1을 해결하고나니 문제2는 무한루프에 빠져서 해결이 안되었습니다.
최대공약수를 활용한 풀이가 깔끔해보여서 참조용으로 올려둡니다
반응형