13. ํผ๋ณด๋์น ์์ด (Fibonacci Numbers) Codility Lesson ํ๊ตญ์ด ์ ๋ฆฌ๋ณธ (JavaScript ver.)
ํผ๋ณด๋์น ์์ด(Fibonacci Numbers)์ด๋?ํผ๋ณด๋์น ์์ด์ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋๋ค.F(0) = 0F(1) = 1F(n) = F(n-1) + F(n-2) (n ≥ 2)์์ :0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ...1. O(2โฟ) ์๊ฐ ๋ณต์ก๋์ ์ฌ๊ท ๋ฐฉ์ (๋นํจ์จ์ )JavaScript ์ฝ๋:function fibonacci(n) { if (n ์ด ๋ฐฉ์์ ๋๋ฌด ๋๋ ค์ n์ด ์ปค์ง์๋ก ์ฌ์ฉํ ์ ์๋ค.2. O(n) ์๊ฐ ๋ณต์ก๋์ ๋์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์JavaScript ์ฝ๋:function fibonacciDP(n) { let fib = new Array(n + 1).fill(0); fib[1] = 1; for (let i = 2; i ์ด ๋ฐฉ์..
10. ์์์ ํฉ์ฑ์ (Prime and Composite Numbers) Codility Lesson ํ๊ตญ์ด ์ ๋ฆฌ๋ณธ (JavaScript ver.)
์์(Prime Number)์ ํฉ์ฑ์(Composite Number)์์(Prime Number) ๋ 1๋ณด๋ค ํฌ๊ณ , ์๊ธฐ ์์ ๊ณผ 1์ ์ ์ธํ ์ฝ์๊ฐ ์๋ ์ ๋ฅผ ์๋ฏธํ๋ค.ํฉ์ฑ์(Composite Number) ๋ 1๊ณผ ์๊ธฐ ์์ ์ด์ธ์๋ ๋ค๋ฅธ ์ฝ์๋ฅผ ๊ฐ์ง๋ ์ ๋ฅผ ์๋ฏธํ๋ค.์๋ฅผ ๋ค์ด, 2, 3, 5, 7, 11, 13 ๋ฑ์ ์์์ด๋ฉฐ, 4, 6, 8, 9, 10 ๋ฑ์ ํฉ์ฑ์์ด๋ค.1. O(√n) ์๊ฐ ๋ณต์ก๋์ ์ฝ์ ๊ฐ์ ๊ตฌํ๊ธฐn์ ์ฝ์๋ฅผ ์ฐพ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ 1๋ถํฐ n๊น์ง ๋ชจ๋ ์๋ฅผ ํ์ธํ๋ ๊ฒ ์ด๋ค. ํ์ง๋ง n์ ์ฝ์๋ ๋์นญ์ฑ์ ๊ฐ์ง๋ฏ๋ก, √n ๊น์ง๋ง ํ์ํด๋ ์ ์ฒด ์ฝ์๋ฅผ ๊ตฌํ ์ ์๋ค.JavaScript ์ฝ๋:function countDivisors(n) { let count = 0; let..
9. ์ต๋ ์ฌ๋ผ์ด์ค ๋ฌธ์ (Maximum Slice Problem) Codility Lesson ํ๊ตญ์ด ์ ๋ฆฌ๋ณธ (JavaScript ver.)
์ต๋ ์ฌ๋ผ์ด์ค ๋ฌธ์ ๋?์ฃผ์ด์ง ์ ์ ๋ฐฐ์ด A = [aโ, aโ, ..., aโโโ] ์์ ์ฐ์๋ ๋ถ๋ถ ๋ฐฐ์ด(์ฌ๋ผ์ด์ค, Slice) ์ค ํฉ์ด ์ต๋๊ฐ ๋๋ ๊ตฌ๊ฐ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ฆ, ๋ ์ธ๋ฑ์ค p, q (p ≤ q)๋ฅผ ์ ํํ์ฌ A[p] + A[p+1] + ... + A[q] ๊ฐ์ด ์ต๋๊ฐ ๋๋ ๊ฒฝ์ฐ ๋ฅผ ์ฐพ๋๋ค.์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ๋ฐฐ์ด์ด ์์ ๋:A = [5, -7, 3, 5, -2, 4, -1];์ ๋ฐฐ์ด์์ ์ต๋ ํฉ์ ๊ฐ๋ ๋ถ๋ถ ๋ฐฐ์ด์ [3, 5, -2, 4]์ด๋ฉฐ, ํฉ์ 10์ด๋ค.1. O(n³) ์๊ฐ ๋ณต์ก๋์ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ๋ชจ๋ ๊ฐ๋ฅํ ์ฌ๋ผ์ด์ค๋ฅผ ํ์ํ์ฌ ์ต๋๊ฐ์ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค.JavaScript ์ฝ๋:function slowMaxSlice(A) { let n = A.length; let r..