-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
NoteNoteNote
Description
- 1๋ถํฐ n๊น์ง์ ํฉ ๊ตฌํ๊ธฐ๋ฅผ ํ๋ฉด์ ์๊ฐํ ๋ฐฉ๋ฒ์ ์ฌ๊ทํธ์ถ์ด์๋ค.
function solution(n) {
if (n > 20) {
return false;
}
if (n < 1) {
return 0;
}
return n + solution(n - 1);
}- ํ์ง๋ง ์์ ๊ฐ์ด ์ฌ๊ท๋ฅผ ํ๋ฉด ์์ง ์ฐ์ฐ์ด ์ ๋๋ฌ๊ธฐ ๋๋ฌธ์ ๊ณ์ ์คํ์ด ์ธ์ด๋ฉด ๋น์ฐํ ์คํ ์ค๋ฒ ํ๋ก์ฐ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
- ๊ทธ๋์ ์ฐ์ฐ์ด ์๋๋๋ ์ฌ๊ท๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๊ผฌ๋ฆฌ์ฌ๊ท๋ฅผ ํ ๋ฒ ์๋ํด๋ดค๋ค. ๊ผฌ๋ฆฌ์ฌ๊ท๋ฅผ ์ฌ์ฉํ๋ฉด ์ฐ์ฐ์ด ์ข ๋ฃ๋๊ณ ๋ค์ ์ฐ์ฐ์ด ์งํ๋๊ธฐ ๋๋ฌธ์ ์คํ ์ค๋ฒ ํ๋ก์ฐ๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
- ๋ค๋ง, ํ์ฌ ์ง์ํ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ค.. ๋ญ.. Firefox์์๋ง ์ง์ํ๋ค๊ณ ๋ ํ๋๋ฐ.. ์ด ๋ง์ ๋ ์๋ฒฝํ๊ฒ ์๋๋ค๋ ์๋ฆฌ๋ฅผ ๋ค์๋ค.
- ์ด์จ๋ ๊ทธ๋ฅ ์ ๋ ๊ฒ ์ฌ๊ท๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ ์ฑ์๋ ์ข๊ฒ ์ง๋ง, ๊ทธ๋ฅ ๋ฐ๋ณต์ผ๋ก ๊ตฌํํ๋ ๊ฑฐ ๋ณด๋ค ์ฑ๋ฅ์ ์์ด์๋ ์ข์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ๋ฐ๋ณต์ผ๋ก ๊ตฌํํ๋๊ฒ ์ข๋ค๊ณ ์๊ฐํ๋ค.
- ๊ผฌ๋ฆฌ์ฌ๊ท๋ฅผ ๊ตฌํํด ๋ณธ์ ์ด ์์ด์ ๊ฐ๋จํ ์์ ๋ผ ํ ๋ฒ์ฏค์ ์๋ํด๋ณด๊ณ ์ถ์๋ค.
- ํ์ง๋ง, ์๋์ ๊ฐ์ด ๊ผฌ๋ฆฌ์ฌ๊ท ํธ์ถ์ ์ ์ฉํ์ ๋๋ ๋ฌธ์ ์์ ์ํ๋ ๋ฐฉํฅ์ฑ๊ณผ๋ ๋ค๋ฅผ ์ ๋ฐ์ ์์๋ค. ์ฌ๊ธฐ์ ์ฃผ์ด์ง ๋ฌธ์ ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ํ๋๋ง ๋๊ธฐ์ง๋ง ๊ผฌ๋ฆฌ์ฌ๊ท๋ฅผ ํ๋ฉด ํจ์๋ฅผ ๋ฆฌํดํด์ผํ๊ธฐ ๋๋ฌธ์ ์ปค๋ง์ ์ฌ์ฉํ์ฌ ํจ์๋ฅผ ๋ฆฌํดํด์ค์ผ ํ๋ค.
- ๋ง์ฝ ์ปค๋ง์ ์ฌ์ฉํ์ง ์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ ๊ฐ๋ฅผ ๋๊ธฐ๋ ๊ฒ๋ฟ์ด๋ค.
- ๋ค์๊ณผ ๊ฐ์ด ๊ผฌ๋ฆฌ์ฌ๊ท๋ฅผ ์ ์ฉํ๋ฉด ์ฝ๋๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ตฌํํ๋ ๊ฒ๋ณด๋ค ๊ฐ๋ ์ฑ๋ ์ข๊ณ ์ฑ๋ฅ ๋ํ ๊ฐ๋ค.
- ๊ผฌ๋ฆฌ์ฌ๊ท๊ฐ ์ ๋์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ค์ ๋ฐ๋ณต๋ฌธ(
for)์ผ๋ก ๋ณ๊ฒฝํด๋ดค์ ๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ณ๊ฒฝ์ด ๋๋ฉด ๊ผฌ๋ฆฌ์ฌ๊ท๊ฐ ์ ๋์๋ค๋ ์ฆ๊ฑฐ์ด๋ค. ๋ง์ฝ, ๊ผฌ๋ฆฌ์ฌ๊ท๊ฐ ์๋์ด ์์ผ๋ฉด ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค. - ๋ณ๊ฒฝํด๋ณด๋ ๊ฑด ์ข ๋ ๊ณ ๋ฏผํด๋ด์ผ๊ฒ ๋ค. ์ด๋ป๊ฒ ๋ณ๊ฒฝํด๋ณด๋ผ๋๊ฑด์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค.
function solution(n) {
return function (acc = 0) {
if (n > 20) {
return false;
}
if (n < 1) {
return acc;
}
return solution(n - 1)(acc + n);
};
}
test('Should return the sum from 1 to n', () => {
expect(solution(6)()).toBe(21);
expect(solution(10)()).toBe(55);
});Metadata
Metadata
Assignees
Labels
NoteNoteNote