[level 2] N개의 최소공배수

2022. 2. 6. 11:41·알고리즘/JavaScript

문제

 

풀이 코드

const calcuGCD = (n, m) => {
  return n % m == 0 ? m : calcuGCD(m, n % m);
};

function solution(arr) {
  let gcd = calcuGCD(arr[0], arr[1]);
  let lcm = (arr[0] * arr[1]) / gcd;

  for (let i = 2; i < arr.length; i++) {
    gcd = calcuGCD(lcm, arr[i]);
    lcm = (lcm * arr[i]) / gcd;
  }
  return lcm;
}

 

풀이 과정

여러 수의 최소공배수를 구하는 방법은 다음과 같다.

 

1. A 와 B 의 최소공배수를 구한다.

2. 1의 최소공배수와 C의 최소공배수를 구한다.

3. 2의 최소공배수와 D의 최소공배수를 구한다.

4 ... 반복한다

 

이렇게 하면 N개 수의 최소공배수를 구할수 있다.

 

최소 공배수를 구하기 위하여 

유클리드 호제법을 이용한 최대 공약수 계산 함수를 생성하고,

 

인덱스 0 과 1 의 최소공배수를 우선 구한후,

다음 인덱스의 수들과 의 최소공배수를 구하도록 하였다.

 

다른사람의 풀이

function nlcm(num) {
 return num.reduce((a,b) => a*b / gcd(a,b))  
}

function gcd(a, b) {
  return a % b ? gcd(b, a%b) : b
}

할말을 잃었다.

풀이가 너무 간단하게 나왔다

'알고리즘/JavaScript' 카테고리의 다른 글
  • [level 2] 최솟값 만들기
  • [level 2] JadenCase 문자열 만들기
  • [level 1] 완주 하지 못한 선수
  • [level 1] 로또의 최고 순위와 최저 순위
Jeohong
Jeohong
기억 보단 기록을
  • Jeohong
    Chikong Devlog
    Jeohong
  • 전체
    오늘
    어제
    • 분류 전체보기 (186)
      • ---- 개발 컨텐츠 ---- (0)
      • iOS (30)
        • Swift 문법 (1)
        • iOS 개념 (12)
        • HIG (5)
        • SwiftUI (7)
        • UIKit (4)
      • Side Project (0)
      • 개발서적 (4)
        • 객체지향 사실과 오해 (4)
      • 알고리즘 (74)
        • 자료구조 개념 (2)
        • Swift (25)
        • JavaScript (47)
      • ---- 회고 계획 컨텐츠 ---- (0)
      • 계획 및 일기 (10)
      • 회고록 (1)
      • 컨퍼런스 탐방 (1)
      • 미드로 영린이 탈출하기 (1)
      • ---- Previous content ---- (0)
      • Frontend (2)
        • HTML & CSS (2)
      • KITRI 수업 (17)
        • 리눅스 (14)
        • 네트워크 (2)
      • 42seoul (17)
        • Bonr2code (9)
        • 넋두리 (7)
        • 멘토특강 (1)
      • 해킹 실습 (20)
        • 해커스쿨 - F.T.Z (19)
        • WebGoat (1)
      • Tensorflow로 시작하는 NLP (1)
        • 예제 (1)
      • 자연어처리 입문 (1)
        • 이론 (1)
      • 텐서플로로 배우는 딥러닝 (7)
        • 이론 (2)
        • 예제 (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딩
    스위프트
    swift
    자료구조
    hig
    백준
    IOS
    네트워크
    javascript
    본과정
    SwiftUI
    알고리즘
    boj
    프로그래머스
    1서클
    42서울
    42seoul
    라피신
    개발자
    Algorithm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Jeohong
[level 2] N개의 최소공배수
상단으로

티스토리툴바