프로그래머스 링크 - https://programmers.co.kr/learn/courses/30/lessons/12953?language=java


하도 귀찮아서 최소공배수 구하는 부분은 가져왔다.

원래대로라면 유클리드 방식으로 로직을 만들어야 하지만.



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
26
27
28
import java.util.*;
class Solution {
  public int solution(int[] arr) {
      int answer = 1;
      for(int i: arr){
          answer = lcm(answer, i);
      }
      return answer;
  }
    
    public static int lcm(int a, int b) {
    int gcd_value = gcd((int)a, (int)b);
 
    if (gcd_value == 0return 0// 인수가 둘다 0일 때의 에러 처리
 
    return Math.abs( (a * b) / gcd_value );
  }
    
    public static int gcd(int a, int b) {
    while (b != 0) {
      int temp = a % b;
      a = b;
      b = temp;
    }
    return Math.abs(a);
  }
 
}
cs


블로그 이미지

Stratos

Stratosphere Stream