프로그래머스 2단계 - N개의 최소공배수 본문
반응형
2 단계 : N개의 최소공배수
코딩테스트 연습 > 연습문제 > N개의 최소공배수
문제 설명
두 수의 최소공배수(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 |
반응형
코드
function solution(arr) {
// arr[0]에 n을 계속 증가시키면서 곱하면서 배열을 순회한다..
// 그 와중에 모든 배열의 원소를 나누어 떨어지게 만드는 수가 바로 최소공배수
let flag = false;
let n = 1;
while(!flag) {
n++;
for(let i = 1; i < arr.length; i++) {
if((arr[0] * n) % arr[i] === 0) {
flag = true;
}
else {
flag = false;
break;
}
}
}
return arr[0] * n
}
리뷰
순서는 다음과 같다
1. arr[0]을 기준으로 n=1 n을 곱해가면서 배열의 모든 원소들을 나누어 떨구는 수를 찾아낼 겁니다
2. 모두 나누어 떨군다면 flag를 true로 만들고 탈출합니다.
3. 그때의 arr[0] * n 값이 최소공배수죠?
총평 : 문제는 저렇게 짧은데 생각을 잘해야 풀겠죠?
반응형
'알고리즘 > 2단계' 카테고리의 다른 글
프로그래머스 2단계 - 점프와 순간 이동 (0) | 2022.11.24 |
---|---|
프로그래머스 2단계 - 예상 대진표 (1) | 2022.11.23 |
프로그래머스 2단계 - 구명보트 (3) | 2022.11.21 |
프로그래머스 2단계 - 짝지어 제거하기 (4) | 2022.11.18 |
프로그래머스 2단계 - 영어 끝말잇기 (3) | 2022.11.17 |
Comments