문제
입출력 예
풀이.
1. 유클리드 호제법을 이용하여 gcd함수 구현, lcm함수 구현
2. 0번째 값을 tmp에 저장후 크기만큼 돌며 lcm함수 실행 후 tmp에 해당 값 저장
>> 값 하나씩 비교하며 최대공약수, 최소공배수를 구해준다.
class Solution {
public int solution(int[] arr) {
int tmp = arr[0];
for(int i=0;i<arr.length-1;i++){
tmp = lcm(tmp,arr[i+1]);
}
return tmp;
}
public int gcd(int a,int b){
if( b == 0 ) {
return a;
}
else {
return gcd(b,a%b);
}
}
public int lcm(int a,int b){
return a*b/gcd(a,b);
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
(LEVEL 0)프로그래머스 - 문자열 계산하기 (JAVA) (0) | 2023.01.10 |
---|---|
(LEVEL 0)프로그래머스 - 문자열 정렬하기 (2)(JAVA) (0) | 2023.01.06 |
프로그래머스 - SQL [ 식품분류별 가장 비싼 식품의 정보 조회하기 Oracle ] (0) | 2022.12.28 |
프로그래머스 - 찾아라 프로그래밍 마에스터 (LEVEL 1) (0) | 2021.07.04 |
프로그래머스 - 음양 더하기 ( LEVEL 1) (0) | 2021.07.03 |