https://programmers.co.kr/learn/courses/30/lessons/12924
//1. 나의 풀이
function solution(n) {
var answer = 0;
var middle = Math.ceil(n/2); // middle까지만 확인하면 됨
var sum = 0;
var arr = [];
// 더하기 위해서 배열 생성
for(var i=1; i<=middle; i++){
arr.push(i);
}
// 배열의 처음요소부터 순차적으로 더하다가 합이 n이면 다음 숫자부터 다시 반복
for(var j=0; j<arr.length; j++){
for(var k=j; k<arr.length; k++){
sum = sum+arr[k];
if(sum===n){
answer = answer + 1;
break;
}else if(sum>n){
break;
}
}
sum = 0;
}
return answer + 1 ; //자기자신(n)일 경우 고려
}
//2. 다른 사람의 풀이: 홀수인 약수의 개수를 구하는 것..이라고 함.
// https://www.zerocho.com/category/Algorithm/post/5b7bf396b35bf5001b940dc5
function solution(n) {
return Array(n).fill()
.map((v, i) => i + 1)
.filter(v => (!(n % v) && v % 2) ).length;
}