https://programmers.co.kr/learn/courses/30/lessons/12953
문제 분석
- 최소공배수를 구한다. (전 게시물 참고 https://woooow.tistory.com/178?category=994691)
- 배열로 들어온 숫자를 두 개씩 비교해서 최소공배수를 구하여 정답을 구한다.
문제 풀이
1. for문을 통해 배열에 들어온 숫자 두 개씩을 lcm메소드로 계산하여 최소공배수를 구한다.
2. 최대공약수(gcd 메소드)를 구한 후 이 값을 이용하여 최소공배수(lcm 메소드)를 구한다.
class Solution {
public int solution(int[] arr) {
int answer = arr[0];
for(int i=1;i<arr.length;i++){
answer = lcm(answer, arr[i]);
}
return answer;
}
// 최소공배수
static int lcm(int a, int b){
return a*b/gcd(a,b);
}
// 최대공약수
static int gcd(int a, int b){
while(true){
if(b==0){
break;
}
int r=a%b;
a=b;
b=r;
}
return a;
}
}
'Algorithm > programmers' 카테고리의 다른 글
programmers 행렬의 곱셈 (0) | 2022.05.01 |
---|---|
programmers JadenCase 문자열 만들기 (0) | 2022.04.18 |
programmers 신고 결과 받기 (0) | 2022.04.10 |
programmers 로또의 최고 순위와 최저 순위 (0) | 2022.04.10 |
programmers 신규 아이디 추천 (0) | 2022.04.10 |