알고리즘/문제를 풀어보쟈 9

최소공배수 구하기 | LCM | Least Common Multiple

최소 공배수는 두 수의 곱 에 두수의 최대공약수를 나눈것이다. 2023.02.05 - [알고리즘/문제를 풀어보쟈] - 최대 공약수 구하기 | GCD | Greatest Common Divisor 최대 공약수 구하기 | GCD | Greatest Common Divisor const getGCD = (num1, num2) =>{ let gcd = 1; for(let i =1; i 두 숫자 다 나눠질때를 의미한다. -> 최대공약수이다. 9. 그렇다면 i를 gcd에 해준다. 10. 그리고 gcd를 리턴한다. 다른 좋은 방법을 찾아보자.. ✨ 유클 diary-of-lemon.tistory.com const GCD = (a,b) => { if(b===0) return a; else return GCD(b,a%b)..

최대 공약수 구하기 | GCD | Greatest Common Divisor

const getGCD = (num1, num2) =>{ let gcd = 1; for(let i =1; i 두 숫자 다 나눠질때를 의미한다. -> 최대공약수이다. 9. 그렇다면 i를 gcd에 해준다. 10. 그리고 gcd를 리턴한다. 다른 좋은 방법을 찾아보자.. ✨ 유클리드 호제법 ✨ 2개의 자연수의 최대공약수를 구하는 알고리즘이다. a>b일때 a를b로 나눈 나머지를 r이라고 할때 GCD(a,b) ===GCD(b,r)은 같고 r이 0이면 이때 b가 최대공약수다. GCD(24,16) -> 일때 24를 16으로 나눈 나머지는 8이다. 그러면 GCD(16,8) 이 되고 GCD(16,8) -> 일떄 16을 8로 나눈 나머지는 0이된다. 나머지가 0이 됐을때 나눈 8, r이 최대공약수가 되는것이다. const..

서울에서 김씨 찾기...

대체 얼마나 많을까..? .. 근데 찾으라니까 찾아본다 문제해결 function solution(seoul) { const answer = `김서방은 ${seoul.findIndex((element)=>element==='Kim')}에 있다`; return answer; } findIndex를 이용해서 찾았다. 주어진 함수를 이용해 만족하는 배열의 첫번째 요소의 인덱스를 리턴한다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex 개선점 indexOf()를 써서 풀 수 도 있다 indexOf()는 배열에서 지정된 요소를 찾아 첫번째 인덱스를 리턴한다. 존재하지 않는다면 -1을 리턴한다. ..

약수를 더해보자!

문제해결 function solution(n) { let answer = 0; let answerArray = []; for (let i = 1; i a+b); return answer; } // 약수는 나눠지는 모든숫자. (기억 잘 안남 틀리면 고쳐주세여ㅠ) // 따라서 자기자신까지 for문을 돌려서 나눠서 나머지가 0이 되는 숫자들을 구함. // 배열안에 나머지가 0이 되는 숫자들을 push하고 // reduce를 이용해 더해준뒤 answer로 리턴해줌. 테스트 1 〉통과 (0.05ms, 30.1MB) 테스트 2 〉통과 (0.06ms, 29.9MB) 테스트 3 〉통과 (0.09ms, 30.1MB) 테스트 4 〉통과 (0.07ms, 30.1MB) 테스트 5 〉통과 (0.10ms, 29.8MB) 테스트 ..

자연수를 뒤집어 배열로 만들어보자

문제해결에 for문을 최대한 안쓰는 방향으로 생각해야하는데 한 번 더 생각해봅시당~.. 문제해결 function solution(n) { const answer = []; const strArray = [...n.toString()].reverse(); for (const item of strArray){ answer.push(+item); } return answer; } 1. n정수를 받아와 [] 배열에 담아준다. 이때 toString()을 사용해 타입변환을 해준다. 2. 그리고 reverse()를 이용해 배열은 뒤집어준다. 3. for of문을 써서 strArray를 하나씩 가져와 answer배열에 push해준다. 4. 이때 하나씩 가져온 item은 string타입이므로 +를 붙여 number로 타..

정수 내림차순으로 정렬하기

오랜만에 푸니까 넘 재미따 문제 해결 function solution(n) { let answer = 0; const numArray = String(n).split("").sort((a,b)=>b-a); answer = Number(numArray.join("")); return answer; } 1. 숫자를 받아와서 배열로 변환하려했다. 2. 이때 숫자는 배열로 변환할 수 없으므로 String으로 타입을 변경해준다. 3. split()메서드를 이용해 String을 지정한 구분자로("")로 배열로 변경해준다. 4. sort()를 이용해 큰 순서로 배열해준다. 5. join()을 이용해 배열의 모든 요소를 연결해 하나의 문자열로 변경한다. ("")로 연결해준다. 개선점 1. String(n).split(..