[프로그래머스] 최대공약수와 최소공배수
2020. 6. 20. 15:46ㆍ프로그래머스/LEVEL 1
import java.util.*;
class Solution {
public int[] solution(int n, int m) {
int[] answer = new int[2];
int flag=1;
if(n>m){
if(n%m==0){
answer[0] = m;
answer[1] = n;
} else{
for(int i=1; i<m; i++){
if(n%i==0 && m%i==0){
answer[0] = i;
answer[1] = n*m/i;
}
}
}
} else{
if(m%n==0){
answer[0] = n;
answer[1] = m;
}else{
for(int i=1; i<n; i++){
if(n%i==0 && m%i==0){
answer[0] = i;
answer[1] = n*m/i;
}
}
}
}
return answer;
}
}
1. 두 숫자중 더 큰 숫자가 무엇인지 모르므로 두 케이스로 나누어서 푼다.
2. 더 큰 숫자가 더 작은 숫자로 나누어 떨어지면 최소공배수와 최대공약수는 바로 정해진다.
3. 나누어 떨어지지 않는다면 1부터 더 작은 숫자까지 돌면서 최대로 나누는 공약수를 구하고 그에 따른 공배수를 구한다.
'프로그래머스 > LEVEL 1' 카테고리의 다른 글
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2020.06.21 |
---|---|
[프로그래머스] 체육복 (0) | 2020.06.21 |
[프로그래머스] 핸드폰 번호 가리기 (0) | 2020.06.20 |
[프로그래머스] 수박수박수박 (0) | 2020.06.19 |
[프로그래머스] 문자열을 정수로 바꾸기 (0) | 2020.06.19 |