코딩테스트

[프로그래머스] 순서쌍의 개수 구하기

홍시_코딩기록 2024. 3. 12. 22:15

 

❓문제

더보기

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.

 

 

 

📌 내 풀이

function solution(n) {
    let result = [];
    for(let i = 0; i < n; i++) {
        if(n % i === 0) {
            result.push(i)
        }
    }
    return result.length + 1;
}

- 처음에 순서쌍을 구하라는 줄 알고 헤맸다..

- 매개변수로 들어오는 n을 i로 나눠서 나눠지는 약수들을 result 배열에 담고 

- result의 길이 + 1 해서 구했다.

 

 

📌 다른 사람 풀이

function solution(n) {
    let ans = 0;
    for (let i = 1; i < Math.sqrt(n); i++)
        if (n%i === 0) ans+=2;

    return Number.isInteger(Math.sqrt(n)) ? ans+1 : ans;
}

- Math.sqrt() 함수는 숫자의 제곱근을 반환합니다.

- Math.squrt()를 찾아보니 이렇게 나와있다.

 

(예제)

Math.sqrt(9); // 3
Math.sqrt(2); // 1.414213562373095

Math.sqrt(1); // 1
Math.sqrt(0); // 0
Math.sqrt(-1); // NaN