Search

[프로그래머스/Java] N개의 최소공배수 (lv.2)

문제 설명

두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.

제한 사항

arr은 길이 1이상, 15이하인 배열입니다.
arr의 원소는 100 이하인 자연수입니다.

입출력 예

arr
result
[2,6,8,14]
168
[1,2,3]
6

나의 풀이

class Solution { public int solution(int[] arr) { int answer = 1; loop: while(true) { for(int i : arr) { if(answer % i != 0) { answer++; continue loop; } } break; } return answer; } }
Java
복사

Remark

풀이 아이디어
단순히 answer를 늘려가며 주어진 수들로 나누어봄
주어진 수들로 모두 나누어지는 경우 while문의 break문을 만나서 루프를 빠져나옴
for문으로 빨리 가는 전략
만약 주어진 조건의 범위가 크다면 시간이 오래 걸리겠지만, 닭 잡는데 소잡는 칼을 만드는 게 더 오래 걸릴 것 같아서 단순하게 풀이함