https://programmers.co.kr/learn/courses/30/lessons/12940
예전에 백준으로(파이썬) 유클리드 호제법의 방법으로 풀었던 최대공약수인데 사람은 망각의 동물인지라 씩 다 까먹었다.
정리 겸 다신 까먹지 않기 위해서 풀고 코드를 올린다
function solution(n, m) {
let p,q
let tmp
if(n===m){
return [n,n]
}
//if(n>m){
// [p,q]=[m,n]} 테스트케이스 자체가 n이 더 큰값은 없었다
else
{
[p,q]=[n,m]
}
while(true){
if(q%p===0){
break
}
tmp=q%p
q=p
p=tmp
}//while전체가 유클리드 호제법으로 문제를 푼 것이다.
return [p,m/p*n]
}
이번에 배운 재귀로 풀기
function solution(n, m) {
function recursion(n,m){
if(m%n===0){
return n
}
return recursion(m%n,n)
}
return[recursion(m,n),m/recursion(m,n)*n]
}
별차이는 없다. 이게 훨씬 간편해 보인다ㅎㅎ
'알고리즘 > 프로그래머스 문제-JS' 카테고리의 다른 글
[JS]최소직사각형 (0) | 2022.07.06 |
---|---|
[JS] 비밀지도 (0) | 2022.07.03 |
[JS]예산 (0) | 2022.06.26 |
[JS]숫자 문자열과 영단어 (0) | 2022.05.31 |
[JS]가운데 글자 가져오기 (0) | 2022.05.31 |