일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
Tags
- NextJs
- 회고
- velog
- 코딩테스트실력진단
- error
- react-query
- 코드트리챌린지
- git
- 코딩테스트
- 프론트엔드
- Front-end
- 프로그래머스
- 알고리즘
- SWIFT
- ios
- 프로젝트
- 자바스크립트
- JavaScript
- tshaped
- AppleDeveloperAcademy
- react
- iOSDeveloper
- 코드트리
- UIKit
- swiftUI
- globalcommunity
- Apple Developer Academy
- Xcode
- frontend
- TypeScript
Archives
- Today
- Total
Moon Work
[프로그래머스] N개의 최소공배수_연습문제 본문
N개의 최소공배수_연습문제
문제 설명
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.
제한 사항- arr은 길이 1이상, 15이하인 배열입니다.
- arr의 원소는 100 이하인 자연수입니다.
풀이
주어진 배열의 가장 작은 값부터 최대 공배수 사이를 돌면서 모든 arr의 값으로 나눠지는 수가 있다면 반복문을 종료하고 값을 리턴하는 방식으로 최소 공배수를 찾아냈다.
function solution(arr) {
let answer;
let maxCommonMultiple = arr.reduce((sum,value)=>sum*value);
arr.sort(function(a,b){
return a-b;
})
const startNum = arr[arr.length-1];
function checkMultiple(arr, num, origin){
for(let i=0;i<arr.length;i++){
if(num%arr[i]!==0){
return false;
}
if(i === arr.length-1){
answer = num;
return true;
}
}
}
for(let i=startNum;i<=maxCommonMultiple;i++){
if(checkMultiple(arr,i)){
break;
}
}
return answer;
}
'알고리즘' 카테고리의 다른 글
[프로그래머스] 베스트 앨범_해시 테이블 (0) | 2022.07.13 |
---|---|
[프로그래머스] 네트워크_DFS/BFS (0) | 2022.06.09 |
[프로그래머스] 점프와 순간 이동_연습문제 (0) | 2022.06.03 |
[프로그래머스] 최솟값 만들기_연습문제 (0) | 2022.06.02 |
[프로그래머스] 오픈채팅방_2019 KAKAO BLIND RECRUITMENT (Daily 알고리즘 9일차) (0) | 2022.06.01 |