class Solution {
public int[] solution(int n, int m) {
int[] answer = new int[2];
int gcd = 0;
int lcm = 0;
// (포인트) n부터 0까지 줄여가면서 나머지가 0인 숫자가 gcd
for(int i = n; i > 0; i--){
if(n % i == 0 && m % i == 0){
gcd = i;
break;
}
}
lcm = gcd * (n/gcd) * (m/gcd);
answer[0] = gcd;
answer[1] = lcm;
return answer;
}
}
1.
class Solution {
public int[] solution(int n, int m) {
int[] answer = new int[2];
for (int i = 1; i < n + m; i++) {
if (n % i == 0 && m % i == 0) {
answer[0] = i;
answer[1] = n * m / answer[0];
}
}
return answer;
}
}
💬 최대공약수(gcd) - 나눠서 두 수 모두 나머지가 0인 수
💬 최소공배수(lcm) - 최대공약수 (m / 최대공약수) (n / 최대공약수) 또는 n * m / 최대공약수
✔ 풀 때마다 해매는 문제이므로 꼭 다시 풀어보자..!