https://school.programmers.co.kr/learn/courses/30/lessons/120897#
Q. 정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
function solution(n) {
// 만약 n이 16 이라면 Math.sqrt(16)의 값은 4
// i < 4 로 비교하니 1,2,3으로 돌아감
// 이 부분 i <= 4 로 계속 비교해서 틀렸음 내가 제곱근 개념을 잘 몰라서 틀리는 것 같다.
let answer = [];
for(let i = 1; i < Math.sqrt(n); i++){
if(n % i === 0){
answer.push(i);
answer.push(n/i);
// 조건에 맞으면 관련 값 배열에 push
}
}
if (Number.isInteger(Math.sqrt(n))) answer = [...answer, Math.sqrt(n)];
// 제곱근의 값이 정수이면(딱 떨어진다면 배열에 추가)
// n이 16이라면 해당 값은 4
answer.sort((a,b)=> a-b);
// 오름차순으로 정렬 후 리턴
return answer;
}
※ Math.sqrt()함수는 숫자의 제곱근을 반환한다.
Math.sqrt(9); // 3
Math.sqrt(2); // 1.414213562373095
Math.sqrt(1); // 1
[리트코드] Remove Element (0) | 2023.03.31 |
---|---|
[리트코드] Duplicate Zeros (0) | 2023.03.30 |
[프로그래머스] 구슬을 나누는 경우의 수 (0) | 2022.11.20 |
[프로그래머스] 소인수분해 (0) | 2022.11.17 |
[프로그래머스] 최빈값 구하기 (0) | 2022.11.14 |
댓글 영역