[Programmers/JS] 약수 구하기


[Programmers/JS] 약수 구하기

1. 1부터 N까지 나머지가 0인 값을 구하기 function solution(n) { var answer = []; for(let i = 1; i <= n; i++){ if(n % i === 0){ answer.push(i) } } return answer; } 1부터 주어진 수 n까지 하나씩 대입하며 나머지가 0인 값을 검사하면 이 문제를 간단히 풀 수 있습니다. 시간 복잡도는 O(n) 입니다. 입력값이 커지면 커질수록 모든 수를 다 대입해야 하기 때문에(입력값이 1,000,000,000,000이라면 1부터 1,000,000,000,000까지 하나씩 다 나눠야 하기 때문에) 효율적이지 못한 코드입니다. 코딩테스트는 컴파일에 일정 시간이 지나면 실패 처리하므로 똑같은 문제가 나와도 입력값이 커진다면 통과하지 못할 수 있습니다. 따라서, 더 빠른 계산을 위해 다른 접근이 필요합니다. 2. 제곱근을 활용하기 제곱근을 활용하면 O(n)인 시간복잡도를 O(logN)까지 줄일 수 있습니다....


#Javascript #약수구하기 #자바스크립트 #코딩테스트 #프로그래머스

원문링크 : [Programmers/JS] 약수 구하기