1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12953
코딩테스트 연습 - N개의 최소공배수
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배
programmers.co.kr
2. 나의 풀이
class Solution {
public int solution(int[] arr) {
int answer = arr[0];
for(int i = 1; i < arr.length; i = i + 1) {
int imsi = 0;
for(int j = 1; j <= answer; j = j + 1) {
if(answer % j == 0 && arr[i] % j == 0) {
imsi = j;
}
}
answer = (arr[i] / imsi) * answer;
}
return answer;
}
}
3. 다른 사람 풀이
class NLCM {
public long nlcm(int[] num) {
long answer = num[0],g;
for(int i=1;i<num.length;i++){
g=gcd(answer,num[i]);
answer=g*(answer/g)*(num[i]/g);
}
return answer;
}
public long gcd(long a,long b){
if(a>b)
return (a%b==0)? b:gcd(b,a%b);
else
return (b%a==0)? a:gcd(a,b%a);
}
public static void main(String[] args) {
NLCM c = new NLCM();
int[] ex = { 2, 6, 8, 14 };
// 아래는 테스트로 출력해 보기 위한 코드입니다.
System.out.println(c.nlcm(ex));
}
}
'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
(Java)프로그래머스 코딩테스트 연습 - Summer/Winter Coding(~2018) - 점프와 순간 이동 (0) | 2020.11.29 |
---|---|
(Java)프로그래머스 코딩테스트 연습 - Summer/Winter Coding(~2018) - 소수 만들기 (0) | 2020.11.29 |
(Java)프로그래머스 코딩테스트 연습 - 연습문제 - 행렬의 곱셈 (0) | 2020.11.28 |
(Java)프로그래머스 코딩테스트 연습 - 연습문제 - 피보나치 수 (0) | 2020.11.24 |
(Java)프로그래머스 코딩테스트 연습 - 연습문제 - 최솟값 만들기 (0) | 2020.11.23 |