programmers/Lv.1

[프로그래머스] 최대공약수와 최소공배수

ssk1 2024. 3. 21. 13:14
728x90
문제
풀이

 

answer 배열 안에 최대공약수와 최소공배수 값만 들어가기 때문에 배열의 길이 2로 초기화.

최대공약수 변수 max 선언.

 

논리연산자 &&을 사용하여 n과 m이 공통되는 숫자이고,

i와 나누어 나머지가 공통으로 0이 되는 수가 max.

 

n과 m을 곱하여 최대공약수로 나눈 수가 최소공배수 min.

 

max와 min을 순서에 맞게 인덱스에 할당.

 

답안
class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        int max = 0; // 최대공약수
        
        for(int i = 1; i <= n && i <= m; i++){
            if(n % i == 0 && m % i == 0){
                max = i;
            }
        }
        
        int min = (n * m) / max; // 최소
        
        answer[0] = max;
        answer[1] = min;
        
        return answer;
    }
}
728x90