-
๊ฐ๋จํ for๋ฌธ์ผ๋ก ํธ๋ ์๊ณ ๋ฆฌ์ฆ & ์ฌ๊ทํจ์JS ์๊ณ ๋ฆฌ์ฆ 2023. 9. 28. 20:53
๐ซจ ์์ฐ์ N์ด ์ ๋ ฅ๋๋ฉด 1๋ถํฐ N๊น์ง์ ํฉ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๋ฒ ์ด์ค์ฝ๋
const answer = (number) => { } answer(6)์ฒซ๋ฒ์งธ ํ์ด
const simpleFor = (number) => { let sum = 0 for(let i = 1 ; i <= number ; i++){ sum += i } return sum }for๋ฌธ์ผ๋ก ๊ฐ๋จํ๊ฒ ์์ฑํด๋ณด์๋ค.
๋๋ฌด ์ฌ์ด๋ฌธ์ ..
ํ์ง๋ง ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก๋ ํ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
์ฌ๊ทํจ์๋ก ํ์ด
const sumRecursive = (number) => { if (number === 1) { return 1 }else{ // else๋ฅผ ์์ ๋๊ฒ ํํ ๊ดํ์ด์ง๋ง ๊ฐ๋ ์ฑ์ ์ํด ๋ฃ์ return number + sumRecursive(number - 1) } } const result = sumRecursive(N) console.log(result)๋์๋ฐฉ์
์ฌ๊ท ํจ์๋ ํจ์๊ฐ ์๊ธฐ ์์ ์ ํธ์ถํ๋ ๊ฒ์ ์๋ฏธํ๋ค. 1๋ถํฐ N๊น์ง์ ํฉ์ ๊ตฌํ๋ ์ฌ๊ท ํจ์๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์ํฉ๋๋ค:
1. ํจ์์ ์ซ์ N์ ์ธ์๋ก ์ ๋ฌ
2. ํจ์ ๋ด๋ถ์์ N์ด 1๊ณผ ๊ฐ์์ง๋ฅผ ๊ฒ์ฌ
- ๋ง์ฝ N์ด 1๊ณผ ๊ฐ๋ค๋ฉด, 1์ ๋ฐํ. ์ด๊ฒ์ ์ฌ๊ท ํธ์ถ์ ์ข ๋ฃ ์กฐ๊ฑด
- N์ด 1๋ณด๋ค ํฌ๋ค๋ฉด, ์ฌ๊ท ํธ์ถ์ ์ํ
3. ์ฌ๊ท ํธ์ถ ๋ด๋ถ์์๋ ํ์ฌ์ N ๊ฐ๊ณผ (N - 1)๊น์ง์ ํฉ์ ๋ํจ. ์ด๋ ๊ฒ N๋ถํฐ 1๊น์ง์ ํฉ์ ๊ณ์ฐํ๊ธฐ ์ํด N์ ํ์ฌ ๊ฐ์ผ๋ก ๋ํ๊ณ , ๋ ์์ ๊ฐ (N - 1)์ ๋ํ ์ฌ๊ท ํธ์ถ์ ์ํ.
4. ์ด๋ ๊ฒ ์ฌ๊ท ํธ์ถ์ด ๊ณ์๋์ด N์ด 1์ ๋๋ฌํ๋ฉด, ํจ์๊ฐ ์ญ์ผ๋ก ํธ์ถ ์คํ์์ ๋น ์ ธ๋์ค๋ฉด์ ๊ฐ ๋จ๊ณ์ ํฉ์ ๋ํจ.
์๋ฅผ ๋ค์ด, N์ด 4์ผ ๊ฒฝ์ฐ:
1. `sumRecursive(4)` ํธ์ถ
2. `4 + sumRecursive(3)` ํธ์ถ
3. `4 + (3 + sumRecursive(2))` ํธ์ถ
4. `4 + (3 + (2 + sumRecursive(1)))` ํธ์ถ
5. `4 + (3 + (2 + 1))`๊ฐ ๋จ
6. ์ต์ข ์ ์ผ๋ก 4 + 3 + 2 + 1 = 10์ด ๋ฐํ๋จ
์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ฌ๊ท ํจ์๋ 1๋ถํฐ N๊น์ง์ ํฉ์ ๊ณ์ฐํ๋ค. ๋จ, ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ ๋์๋ ์ฌ๊ท ํธ์ถ์ด ์ข ๋ฃ ์กฐ๊ฑด์ ๋๋ฌํ๋๋ก ๋ณด์ฅํด์ผ ํ๋ฉฐ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฌดํ ๋ฐ๋ณต์ด ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค.๊ทธ๋ฆฌ๊ณ ์ฌ๊ทํจ์๋ 1๋ถํฐ N์ ํฉ ํ์ด์๋ ์ ํฉํ์ง ์๋ค..
๋์ค์ ๋ ๋ณต์กํ ๋ฌธ์ ๋ ์ฌ๊ท์ ์ธ ๋ฌธ์ ํด๊ฒฐ์ ์ฌ์ฉํด๋ณด์.
+ ์ํ์ ๊ณต์์ ํ์ฉํ ํ์ด
const sumFormula = (number) => { return (number * (number + 1)) / 2; } const result = sumFormula(N); console.log(result);
1๋ถํฐ N๊น์ง์ ํฉ์ ๊ตฌํ๋ ๊ณต์์ N(N + 1) / 2'JS ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
includesํจ์๋ก ์ผ์ผ ๊ฒฝ์ฐฐ๊ด ๋๊ธฐ ์๊ณ ๋ฆฌ์ฆ (0) 2023.10.01 ๋๋จธ์ง์ฐ์ฐ์๋ก ํ์๋ฅผ ๊ตฌํ๊ณ Math์ ์ ๊ฐ์ฐ์ฐ์๋ก ์ต์๊ฐ๊ตฌํ๊ธฐ (0) 2023.09.30 ๊ฐ๋จํ ์ ๊ฐ์ฐ์ฐ์์ for๋ฌธ์ผ๋ก ์ต์๊ฐ ๊ตฌํ๊ธฐ (+ map) (0) 2023.09.29 Mathํจ์๋ฅผ ํ์ฉํ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ (0) 2023.09.27 Mathํจ์๋ฅผ ํ์ฉํ ์๊ณ ๋ฆฌ์ฆ (0) 2023.09.26