문제 설명
- 순서쌍이란 두 개의 숫자를 순서를정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다.
- 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
제한 사항
- 1 ≤ n ≤ 1,000,000
입출력 예
나의 풀이
function solution(n) {
let cnt = 0;
for(let i = 1; i <= n; i ++) {
if(n % i == 0) {
cnt++;
}
}
return cnt;
}
- 순서쌍의 개수를 구하는 것은 약수를 구하는 것과 같다.
- 즉, n 만큼 for문을 돌려 n과 나누어 떨어지는 약수가 있으면 카운트를 해준다.
다른 사람 풀이
function solution(n) {
return Array(n).fill(1).map((v,idx) => v + idx).filter(v => n % v === 0).length
}
- Array(n).fill(1): 길이가 n인 배열을 선언하여 1로 채운다. [1.1.1....]
- map((v, idx) => v + idx): 현재 요소 v에 요소의 인덱스를 더한다. [1, 2, 3, 4, 5,....n]
- filter(v => n % v === 0): n을 현재 요소로 나누었을 때 0인, 즉 약수를 구한다.
- length: 그 약수의 개수를 구한다.
728x90
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers/JavaScript] n의 배수 고르기 (0) | 2024.07.09 |
---|---|
[Programmers/JavaScript] 가장 큰 수 찾기 (0) | 2024.07.09 |
[Programmers/JavaScript] 모음 제거 (0) | 2024.07.09 |
[Programmers/JavaScript] 직사각형 별찍기 (1) | 2024.07.05 |
[Programmers/JavaScript] 최댓값 최솟값 (1) | 2024.07.05 |