🗃️javascript/프로그래머스
숫자의 표현(Lv.2)[]
하얀성
2023. 3. 29. 08:35
<설계. 1차시도>
21
21
11 10
3
짝이든 홀이든 (나머지 있는 경우)
n%i == i*0.5
홀수로 나누면 떨어져야 함.
-> 홀수로 나누면 떨어지는 건 홀수뿐임.
짝수로 나누면?
2 / 17
몫(짝수) + 몫 * 0.5 = 나눈 값
for(i){if()cnt++}
4(i) + 4 * 0.5
1 2 3 4 10
2 3 4 5 14
3 4 5 6 18
7 8 9 10 34
10 11 12 13 46
24
3 8 = 24
7, 8, 9
15 / 6
2 3
0 1 2 3 4 5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
function solution(n) {
let cnt = 0;
for(let i = 0 ; i<=n; i++){
if(i % 2 === 0){ // 몫이 짝수라면
if(n%i === i*0.5 && n/i >= n%i ){
cnt++;
}
}else{// 몫이 홀수라면
if(n % i === 0 && i != n){ // 나누어 떨어지면 ok
cnt++;
}
}
}
return cnt
}
|
cs |
다시풀어보기
"주어진 자연수를 연속되는 자연수들의 합으로 표현할 수 있는 방법의 수는 주어진 자연수의 약수 중에서 홀수인 수의 개수와 같다."
<윗 내용 참고 제출답안>
function solution(n) {
let many = [];
for(let i =1; i<=n; i++){
if(n % i == 0 && i % 2 != 0) {
many.push(i)
}
}
return many.length
}