두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다.
풀이
import java.util.Arrays;
class TryHelloWorld {
public int[] gcdlcm(int a, int b) {
if( a < b){
int temp = a;
a = b;
b = temp;
}
int gcd = gcd(a, b);
int lcm = a * b / gcd;
int[] answer = new int[2];
answer[0] = gcd;
answer[1] = lcm;
return answer;
}
private int gcd(int a, int b){
if (b == 0) return a;
return gcd(b, a%b);
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args) {
TryHelloWorld c = new TryHelloWorld();
System.out.println(Arrays.toString(c.gcdlcm(3, 12)));
}
}
유클리드 호제법 을 참고하면 쉽게 풀 수 있음
'Algorithms > Programmers' 카테고리의 다른 글
Level 2 - 콜라츠 추측 (0) | 2018.02.19 |
---|---|
Level 2 - 정수 내림차순으로 배치하기 (0) | 2018.02.19 |
Level 1 - 나누어 떨어지는 숫자 배열 (0) | 2018.02.14 |
Level 1 - 문자열 내림차순으로 배치하기 (0) | 2018.02.14 |
Level 1 - 피보나치 수 (0) | 2018.02.14 |