반응형
순서쌍 개수 구하기
첫 풀이
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
}
검색을 통해 알아본 결과
순서쌍의 개수 === 약수의 개수이었다.
그래서, 식을 변경시켜 적용한 결과 시간 초과 등의 문제가 발생하지 않고,
첫 번째 풀이보다 더욱 빠르게 결과를 도출할 수 있었다.
반응형