문제 출처 - Programmers
문제는 여기
코딩테스트 연습 - 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의
programmers.co.kr
[풀이]
1. 최대공약수를 구하는 함수를 만들어준다.
// 최대공약수
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
2. 최소공배수를 구하는 함수를 만들어준다.
// 최소공배수
public static int lcm(int x, int y) {
//0이 아닌 두 수의 곱 / 두 수의 최대공약수
return (x * y) / gcd(x, y);
}
3. 1. 과 2. 에서 만든 최대공약수와 최소공배수를 배열에 넣어 리턴해준다.
[접근]
1. 최대공약수와 최소공배수를 만들어서 배열에 넣어주면 되겠다고 생각하였다.
[코드]
class Solution {
public int[] solution(int n, int m) {
int gcd = gcd(n, m);
int lcm = lcm(n, m);
int[] answer = {gcd, lcm};
return answer;
}
// 최소공배수
public static int lcm(int x, int y) {
//0이 아닌 두 수의 곱 / 두 수의 최대공약수
return (x * y) / gcd(x, y);
}
// 최대공약수
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 폰켓몬 (JAVA) (0) | 2022.05.31 |
---|---|
[프로그래머스] 단어 변환 (JAVA) (0) | 2022.05.29 |
[프로그래머스] 최소직사각형 (JAVA) (0) | 2022.05.27 |
[프로그래머스] 하샤드 수 (JAVA) (0) | 2022.05.26 |
[프로그래머스] 소수 찾기 (JAVA) (0) | 2022.05.25 |