👀 문제
https://programmers.co.kr/learn/courses/30/lessons/12953
👊 도전
1. 설계
- LCM(a,b)=a*b/GCD(a,b)이다.
- answer에 현재까지의 lcm을 저장하고, answer=lcm(answer, arr[i]) 방식으로 구현한다.
2. 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.*;
/**
*
* @author HEESOO
*
*/
class Solution {
public int solution(int[] arr) {
int answer = arr[0];
Arrays.sort(arr);
for(int i=1;i<arr.length;i++){
answer=lcm(arr[i], answer);
}
return answer;
}
public int gcd(int a, int b){
if(a%b==0) return b;
else return gcd(b, a%b);
}
public int lcm(int a, int b){
return a*b/gcd(a,b);
}
}
3. 결과
🤟 성공 🤟
4. 설명
- answer=LCM(answer, arr[i]) 방식으로 답을 찾는다
- answer을 arr[0]으로 초기화하고, i=1부터 탐색한다.
- gcd(a, b)에서 파라미터 a>b이어야 하기 때문에 Array.sort()로 오름차순으로 정렬하였다.