오늘이라도

[2일차][프로그래머스, 120808번, Lv. 0] 분수의 덧셈 본문

개발 공부/코딩테스트

[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

위에 문제1을 해결하고나니 문제2는 무한루프에 빠져서 해결이 안되었습니다.

 

 

최대공약수를 활용한 정답

최대공약수를 활용한 풀이가 깔끔해보여서 참조용으로 올려둡니다

반응형