두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
classSolution {
publicint[] solution(int n, int m) {
int temp = (n < m) ? n : m; // m이 더 클경우 작은숫자는 n 아닐경우 mint[] answer = newint[2];
for(int i = 1; i <= temp; i++)
if(n % i == 0 && m % i ==0) // 최대공약수는 둘다 같은숫자로 떨어지는 숫자임
answer[0] = i;
answer[1] = n * m / answer[0];
return answer;
}
}
우선 temp 라는걸 만들어서 어떤숫자가 더 작은지 확인한다.
그 작은 숫자만큼 for문을 돌려서 1부터 작은 숫자까지 돌려서 나눠떨어지는 숫자를 찾는다.
만약 없을경우엔 제일 작은 숫자인 1이 될것이다.. (1은 무조건 나눠떨어지니까)
answer[1] (최소공배수) = 두 수의 곱 / 최대공약수
그 이후 조건에 맞게 answer[0]에는 최대공약수, answer[1]에는 최소공배수를 넣어준다.