본문 바로가기
코딩 테스트/[JAVA] programmers 코딩 테스트 연습

[Programmers/JAVA] 최대공약수와 최소공배수 / 프로그래머스 코딩 테스트 연습

by M개발자 2021. 6. 16.
반응형

최대공약수와 최소공배수


문제 설명

 

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.


예시

 

n m return
3 12 [3, 12]
2 5 [1, 10]

코드 해석 및 전체 코드

 

알고리즘

1. m이 n보다 클 경우 값 변경

2. 최대 공약수 구하기

3. 최대 공약수를 활용하여 최소공배수 구하기 

 

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

github

programmers

 

반응형

댓글