https://school.programmers.co.kr/learn/courses/30/lessons/12940
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
최대공약수는 유클리드 호제법을 이용하면 편리하게 구할 수 있다.
유클리드 호제법이란?
https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95
유클리드 호제법 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란
ko.wikipedia.org
최소공배수는 최대공약수가 가지지 않았던 모든 약수를 곱해주면 되므로
둘을 곱하고 약수로 나누어주면 된다.
- Java
class Solution {
public int[] solution(int n, int m) {
int[] answer = new int[2];
answer[0]=gcd(Math.max(n,m),Math.min(n,m));
answer[1]=(int)n*m/answer[0];
return answer;
}
static int gcd(int a, int b){
while(a!=0){
a=a%b;
if(a==0) return b;
int c = a;
a=b;
b=c;
}
return -1;
}
}
- Ruby
def solution(n, m)
answer = []
answer.append(gcd(n,m))
answer.append(n*m/answer[0])
return answer
end
def gcd(a,b)
if a<b
a,b=b,a
end
while a!=0
a=a%b
if a==0
return b
end
a,b=b,a
end
end
'Programmers > Java, Ruby' 카테고리의 다른 글
프로그래머스 Java : 3진법 뒤집기 (0) | 2022.11.10 |
---|---|
프로그래머스 Java / Ruby : 이상한 문자 만들기 (0) | 2022.11.08 |
프로그래머스 Java / Ruby : 직사각형 별찍기 (0) | 2022.11.03 |
프로그래머스 Java / Ruby : 부족한 금액 계산하기 (0) | 2022.11.02 |
프로그래머스 Java / Ruby : 행렬의 덧셈 (0) | 2022.11.01 |