Space
article thumbnail
반응형

순서쌍 개수 구하기

 

 

첫 풀이

function solution(n) {
    let arr = [];
    for(let i = 1; i <= n; i++){
        for(let j = n; j >= 1; j--){
            if(i * j === n){
                arr.push(n)
            }
        }
    }
    return arr.length
}

 

순서쌍의 개수를 중복 for문을 이용하여 구하려고 했었다.

그러나, n의 개수가 커질수록 기하급수적으로 값을 구하는 시간이 길어졌다.

결국 식은 맞게 푼 것 같으나, 시간초과로 문제를 틀렸다.

 

 

두 번째 풀이

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

 

검색을 통해 알아본 결과

순서쌍의 개수 === 약수의 개수이었다.

그래서, 식을 변경시켜 적용한 결과 시간 초과 등의 문제가 발생하지 않고,

첫 번째 풀이보다 더욱 빠르게 결과를 도출할 수 있었다.

반응형
profile

Space

@Space_zero

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!