오늘이라도

[4일차][프로그래머스, 120815번, Lv. 0] 피자 나눠먹기 (2) 본문

개발 공부/코딩테스트

[4일차][프로그래머스, 120815번, Lv. 0] 피자 나눠먹기 (2)

upcake_ 2022. 12. 20. 17:26
반응형

문제

내 풀이

class Solution {
    public int solution(int n) {
        //소인수분해 후 없는 소수를 6에 곱해준다
        //6과 n의 최소공배수/6 = answer
        int lcm = getLeastCommonMultiple(n, 6);
        return lcm >= 6 ? lcm / 6 : lcm;
    }
    
    private int getLeastCommonMultiple(int num1, int num2) {
        int lcm = 0;

        loop:
        for(int i = 1; i <= num2; i++) {
            int a = num1 * i;
            for(int j = 1; j <= num1; j++) {
                int b = num2 * j;
                
                if(a == b) {
                    lcm = a;
                    break loop;
                } else if(a < b) {
                    continue;
                }
            }
        }
        return lcm;
    }
}

채점 결과

피드백

최소공배수를 이용하여 풀었다

 

break (루프명) 을 활용하여 다중반복문도 한번에 break 가능

 

 

최대공약수 구하기

    public int GCD(int num1, int num2) {
        if (num1 % num2 == 0)
            return num2;
        return GCD(num2, num1 % num2);
    }

 

최소공약수 구하기

    public int LCM(int num1, int num2) {
        return num1 * num2 / GCD(num1, num2);
    }

 

반응형