코딩테스트
[프로그래머스] 순서쌍의 개수 구하기
홍시_코딩기록
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