Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 프로그래머스 데브코스
- 머쓱이
- frontend roadmap study
- 모던 자바스크립트 Deep Dive
- 모던 자바스크립트 TIL
- react 프로젝트 리팩토링
- 백준 js
- K_Digital Training
- react customHook 예시
- 프로그래머스 데브코스 프론트엔드 TIL
- 프로그래머스 데브코스 프론트엔드
- TypeScript 문법 소개
- 프로그래머스 K_Digital Training 프론트엔드
- KDT 프로그래머스
- 우테캠 회고록
- Vue3
- 백준 node.js
- Frontend Roadmap
- 프로그래머스 K_Digital Training
- 개발자 특강
- 인프런 자바스크립트 알고리즘 문제풀이
- 모던 javascript Deep Dive
- useRef 지역 변수
- KDT 프로그래머스 데브코스 프론트엔드
- 모던 자바스크립트 Deep Dive TIL
- Vue3 Router
- 모던 자바스크립트 딥다이브
- 리팩토링 회고
- useEffect return
- 투포인터알고리즘 js
Archives
- Today
- Total
프론트엔드 개발자의 기록 공간
[프로그래머스 JavaScript] 최대공약수와 최소공배수 본문
🚩 프로그래머스 Level1 최대공약수와 최소공배수
function solution(n, m) {
var answer = [];
//유클리드 알고리즘 사용
let a=n;
let b=m;
let tmp;
//m이 더 큰경우 값 체인지
if(n<m){
[a,b] = [b,a]
}
while(b!= 0){
tmp = a%b;
a = b;
b = tmp;
}
//최대공약수
answer.push(a);
//최소공배수
answer.push(n*m/a);
return answer;
}
코드 설명 : 최대 공약수를 구하는 방법으로 유클리드 호제법 알고리즘을 사용했다.
❓유클리드 호제법이란❓
호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다.
ex) 1071과 1029의 최대공약수를 구하면,
- 1071은 1029로 나누어떨어지지 않기 때문에, 1071을 1029로 나눈 나머지를 구한다. ≫ 42
- 1029는 42로 나누어떨어지지 않기 때문에, 1029를 42로 나눈 나머지를 구한다. ≫ 21
- 42는 21로 나누어떨어진다.
- 따라서, 최대공약수는 21이다.
최소 공배수는 두 수의 곱 / 최대 공약수 이다.
728x90
'알고리즘_JS > 프로그래머스_Level1' 카테고리의 다른 글
[프로그래머스 JavaScript] 평균 구하기 (0) | 2021.07.15 |
---|---|
[프로그래머스 JavaScript] 콜라츠 추측 (0) | 2021.07.15 |
[프로그래머스 JavaScript] 짝수와 홀수 (0) | 2021.07.15 |
[프로그래머스 JavaScript] 제일 작은 수 제거하기 (0) | 2021.07.15 |
[프로그래머스 JavaScript] 정수 제곱근 판별 (0) | 2021.07.15 |
Comments