import java.util.*;
class Solution {
public int solution(int[] arr) {
int answer = 0;
Stack<Integer> st = new Stack();
for(int i= 0 ; i<arr.length;i++) {
st.push((int)arr[i]);
}
while(st.size()>1) {
int a = (int)st.pop();
int b = (int)st.pop();
int max = Math.max(a, b);
int min = Math.min(a, b);
int lcm = max;
while(true) {
if(lcm % min== 0) {
st.push(lcm);
break;
}
lcm +=max;
}
}
answer = st.pop();
return answer;
}
}
(1) 스택 객체 st 에 매개변수 arr 각 값을 넣어준다.
(2) 스택 객체 st 에서 pop() 메소드를 활용하여 두 개씩 꺼내 최소공배수를 구하고 다시 그 최소공배수를 스택 객체 st에 push()
(3) 이 과정을 반복하여 마지막에 남은 1개의 값이 N개의 숫자의 최소공배수
최소공배수를 구할 때 스택을 활용하여 풀도록 하자. 여기서 주의할건 조건에서 100가까이 되는 숫자들로만 이루어진 배열이 매개변수로 주어진다면 저장되는 값이 int 정수형의 범위를 벗어남으로 이럴 경우 long 타입을 이용하자!