반응형

▶  참고 지식  ◀

 

https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95

 

유클리드 호제법 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란

ko.wikipedia.org

 

▶  문제 설명  ◀

 

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요.

배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다.

예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.

 

 

▶  제한 사항  ◀

 

˙두 수는 1이상 1000000이하의 자연수입니다.

 

class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        int num1 = 0;
        int num2 = 0;
        if(n>m){
        	num1 = n;
        	num2 = m;
        }else{
        	num1 = m;
        	num2 = n;
        }
        
    	int div1 = num1; 
    	int div2 = num2; 
    	while(true){
    		if(div1%div2 == 0){
    			answer[0] = div2;
    			break;
    		}
    		int temp = div1;
    		div1 = div2;
    		div2 = temp%div2;
    		
    	}
        	
        answer[1] = num1 * num2 / answer[0];
        return answer;
    }
    
}
반응형

+ Recent posts