728x90
function solution(n) {
let count = 1;
if (n == 1) {return 1}
for (let i = 1; i <= Math.ceil(n / 2); i++) {
let sum = 0;
let start = i;
while (sum < n) {
sum += start;
if (sum === n) count++;
start++;
}
}
return count;
}
์ด๋ ๊ฒ ์ ์งํ๊ฒ(?) ํ์๋๋ฐ,
else ๋ฅผ ์ฐ์ง ์์์ ๋ ์๊ฐ ์ด๊ณผ๋ก ํต๊ณผ๋์ง ๋ชปํ์๋ค. ???
์๋๋ค ๋ค์ ํด๋ณด๋ ํต๊ณผ ๋๋ค.. ???
๊ทธ๋ฆฌ๊ณ n ์ด 1 ์ผ ๊ฒฝ์ฐ์๋ ๋ฐ๋ณต๋ฌธ์ ๋ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก 1์ ์ถ๋ ฅํด์คฌ๋ค.
์ค๋๋ ๋น๋์ข ์ฝ๋๋ฅผ ์ฅ์ฅ ํด๋ณด์
function solution(n) {
let answer = 0;
for (let k = 1; k <= n/2 + 1; k++)
if ((n/k - (k-1)/2) % 1 === 0 && n/k - (k-1)/2 > 0) answer++;
return answer;
}
ํ์์ ๊ฒฝ์ฐ, ์ฝ์๋ ํ์ ๋ฐ์ ์๋์ด. 15์ ์ฝ์๋ 1,3,5, 15. ์ฝ์๋ฅผ ์ด์ฉํด์ ์ฐ์๋ ์์ ํฉ์ด 15๊ฐ ๋์ค๋๋ก ํ ์๋ ์์. 15=1+2+3+4+5 (์ค๊ฐ๊ฐ 3) 3x5 / 15=4+5+6 (์ค๊ฐ๊ฐ 5) 5x3 / 15=7+8 (์ฐ์๋ ์) 7+8 - ํ์์ธ ๊ฒฝ์ฐ ๋ฌด์กฐ๊ฑด ๊ฐ๋ฅ. / 15=15 / ์ค๊ฐ๊ฐ์ด 3์ธ ๊ฒฝ์ฐ, ์ค๊ฐ๊ฐ์ด 5์ธ ๊ฒฝ์ฐ, ์ฐ์๋ ์(7, 8), 15(n) ํด์ 4๊ฐ์ธ๋ฐ, ์ด๊ฒ ๊ณต๊ต๋กญ๊ฒ ํ์์ ์ฝ์ ์์ ๊ฐ์. ๊ทธ๋ฆฌ๊ณ ์ง์์ ๊ฒฝ์ฐ๋ ํ์์ ์ฐ์ฅ์ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋จ. n=30์ธ ๊ฒฝ์ฐ, 30์ ์ฝ์๋ 1, 2, 3, 5, 6, 10, 15, 30์. 30=4 + 5 + 6 + 7 + 8 (์ค๊ฐ๊ฐ 3์ ์ฐ์ฅ) 2x3x5 / 30=9 + 10 + 11 (์ค๊ฐ๊ฐ 5์ ์ฐ์ฅ) 2x5x3 / 30=6+7+8+9 (์ฐ์๋ ๋ ์์ ์ฐ์ฅ) 2x(7+8) / 30=30 / ๊ฒฐ๊ณผ์ ์ผ๋ก n์ ํ์ ์ฝ์ ๊ฐ์๋ง ๊ตฌํด๋ ๋ต์ด๋ ๊ฐ์.
์กฐ๊ธ ๋ ์ํ์ ์ผ๋ก ๋ค์ด๊ฐ๋ฉด ์ด๋ ๊ฒ ๊ท์น์ฑ์ด ๋ณด์ธ๋ค๊ณ ํ๋ค.
์ฑ๊ธฐ๋ฐฉ๊ธฐ ์ํ์ ์ธ๊ณ~
728x90
๋ฐ์ํ
'ํ์ ๊ณต๋ถ > ๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์ฝ๋ผ์ธ ์ถ์ธก (0) | 2023.08.29 |
---|---|
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ด p์ y์ ๊ฐ์ (0) | 2023.08.29 |
[์๊ณ ๋ฆฌ์ฆ || ๋ฐฑ์ค] node JS - 10798 ์ธ๋ก ์ฝ๊ธฐ (0) | 2023.08.26 |
[์๊ณ ๋ฆฌ์ฆ || ๋ฐฑ์ค] node JS 2566 ์ต๋๊ฐ (0) | 2023.08.19 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (0) | 2023.08.15 |