n | m | return |
---|---|---|
3 | 12 | [3, 12] |
2 | 5 | [1, 10] |
입출력 예 #1
위의 설명과 같습니다.
입출력 예 #2
자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다.
class Solution {
public int[] solution(int n, int m) {
int[] answer = new int[2];
int val1 = 0;
int val2 = 0;
int r = 1;
if(n>m){
val1 = n;
val2 = m;
} else {
val1 = m;
val2 = n;
}
while(r > 0) {
r = val1 % val2;
val1 = val2;
val2 = r;
}
answer[0] = val1;
answer[1] = m * n/answer[0];
return answer;
}
}
반환할 int[] 타입의 변수 answer의 크기를 2로 선언
val1과 val2를 0으로 초기화하여 int 타입으로 선언
r을 1으로 초기화하여 int 타입으로 선언
if 문을 사용하여 n보다 m이 크면 val1에 n을 val2에 m을 대입
n보다 m이 작거나 같을 경우 val1에 m을 val2에 n을 대입
r이 0보다 클 때까지만 while문을 반복
r에 val1 % val2 한 값을 저장하고 val1에는 val2를 val2에는 r을 저장하는 과정을 반복
answer[0]
(최대공약수)에 val1을 저장하고 answer[1]
(최소공배수)에는 m*n/answer[0]을 저장