[LeetCode] Three Divisors

준규·2022년 9월 30일
0

정수 n이 주어질 때 정확히 3개의 divisor가 존재하면 true를 리턴하고 아니라면 false를 리턴하는 문제이다

정수 k에 대해 m * k = n 을 만족하면 m은 n의 divisor라고 한다

Example 을 보자

1번 예시는 divisor 가 1, 2 뿐이므로 false가 리턴된다

const isThree = function(n) {
    let count = 0;
    if(n <= 3) return false;
    
    for(let i = 1; i <= n; i++) {
        if(Number.isInteger(n / i)) count ++;
        if(count > 3) return false
    }
    
    return count === 3 ? true : false
};

우선 문제를 자세히 보면 n <= 3일 경우에는 divisor가 3이 될 수 없으므로 예외처리를 먼저 해주었다

그 다음 1부터 n까지 for문을 돌면서 만약 n / i 값이 정수라면 count 값을 1 증가시켜주었고 count > 3 일 때도 false를 리턴해줘야 하므로 if 문을 이용해 체크해주었다

for문이 끝나면 count 의 값에 따라 true , false 를 리턴해주었다

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글