[level 1] 최대공약수와 최소공배수

2022. 1. 11. 10:36·알고리즘/JavaScript

문제

 

풀이 코드

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

function solution(n, m) {
    let gcd = calcuGCD(n,m);
    let lcm = (n * m) / gcd;
    return [gcd, lcm]
}

 

풀이 과정

최대공약수를 구하기 위해 유클리드 호제법 을 사용하였다.

유클리드 호제법이란?

A , B 의 최대공약수를 구하는 수식
1. 만약 A 를 B 로 나눈 나머지 값이 0이면, 최대공약수는 B가 된다.
2. 그렇지 않다면 A 를 B로 대치하고, B를 A를 B로 나눈 나머지로 대치한다
3. 1번의 조건이 성립될때까지 계속 반복한다.

위의 조건을 재귀함수를 통하여 코드로 구현하면

function GCD(A,B) {
	if (A % B == 0) {
    	return B;
    }
    else {
    	return GCD(B, A % B);
    }
 }

위와 같이 나타낼수 있다! 

위의 코드를 기반으로 삼항연산을 적절히 섞어 구현하였고,

 

최소공배수는 두수를 곱하고, 최대공약수로 나눈 값이 된다!

 

다른사람의 코드

function gcdlcm(a, b) {
    var r;
    for(var ab= a*b;r = a % b;a = b, b = r){}
    return [b, ab/b];
}

이 코드는 좀 신기해서 가져왔다.

for문을 이용하여 구현하였다

 

대박

'알고리즘/JavaScript' 카테고리의 다른 글
  • [level 1] 정수 제곱근 판별
  • [level 1] 제일 작은 수 제거하기
  • [level 1] 콜라츠 추측
  • [level 1] 하샤드의 수
Jeohong
Jeohong
기억 보단 기록을
  • Jeohong
    Chikong Devlog
    Jeohong
  • 전체
    오늘
    어제
    • 분류 전체보기 (186) N
      • ---- 개발 컨텐츠 ---- (0)
      • iOS (30)
        • Swift 문법 (1)
        • iOS 개념 (12)
        • HIG (5)
        • SwiftUI (7)
        • UIKit (4)
      • Side Project (0)
      • 개발서적 (4)
        • 객체지향 사실과 오해 (4)
      • 알고리즘 (74) N
        • 자료구조 개념 (2)
        • Swift (25) N
        • 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)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Jeohong
[level 1] 최대공약수와 최소공배수
상단으로

티스토리툴바