TIL_프로그래머스 - Lv0. 순서쌍의 개수

정윤숙·2023년 7월 1일
0

TIL

목록 보기
179/192
post-thumbnail

📒 오늘의 공부

1. 프로그래머스

Lv0. 순서쌍의 개수

나의 풀이

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

다른 풀이

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;
}
  • i는 n의 약수
    • i가 약수인 경우에는 두 개의 숫자의 곱으로 n을 만들 수 있으므로 ans를 2 증가
      (=n의 약수는 해당 숫자와 n/i 두 개가 있으므로 두 개씩 추가)
  • for 루프가 끝나면 ans에는 n의 약수의 총 개수가 저장
  • ans+1 : 제곱근으로 나누어 떨어지는 경우에는 약수의 개수를 중복으로 세고 있으므로 하나를 더 추가
    = n의 제곱근이 정수라면 제곱근으로 나누어 떨어지는 수가 하나 더 있으므로 ans에 1을 추가

Math.sqrt()

  • 주어진 숫자의 제곱근을 반환

Number.isInteger()

  • 주어진 값이 정수인지를 확인
  • 주어진 값이 정수면 true, 정수가 아니면 false를 반환
profile
프론트엔드 개발자

0개의 댓글