Algorithm/์ธํ๋ฐ(inflearn)
๐ 06 - ์ฌ๋๋ผ ์์ผ๋๋(DFS ํ์ฉ) N*N์ ์ฌ๋๋ผ ์์ผ๋๋์ ์ง๋๊ฐ ๊ฒฉ์ํ์ ์ ๋ณด๋ก ์ฃผ์ด์ง๋ค. ๊ฐ ์ฌ์ 1๋ก ํ์๋์ด ์ํ์ข์ฐ์ ๋๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ, 0์ ๋ฐ๋ค์ด๋ค. ์ฌ๋๋ผ ์์ผ๋๋์ ๋ช ๊ฐ์ ์ฌ์ด ์๋์ง ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋ง์ฝ ์์ ๊ฐ๋ค๋ฉด ์ฌ์ ๊ฐ์๋ ์ด 5๊ฐ์ด๋ค. ๐ ํ์ด ๋ฐฉ๋ฒ ๋ฏธ๋ก ํ์ ๋ฌธ์ ์ ์ ์ฌํ ๋ฌธ์ ์ด๋ฏ๋ก ์ฐธ๊ณ ํ๋ฉด ์ข์ ๋ฏํ๋ค. ์ด์ค for ๋ฌธ์ ๋๋ฉด์ 1์ด ๋์จ๋ค๋ฉด ์ฌ์ ๋ฐ๊ฒฌํ ๊ฒ์ด๋ฏ๋ก ๋ฐฐ์ด์์ ํด๋น ์ขํ๋ฅผ 0์ผ๋ก ์ฌํ ๋นํ๊ณ answer++์ ํ๋ค. ํด๋น ์ขํ์ ๋ํด DFS๋ฅผ ๋๋ฉด์ ์ํ์ข์ฐ์ ๋๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ขํ๊ฐ ์๋์ง ํ์ํ๋ค. ์ฐ๊ฒฐ๋ ์ขํ๊ฐ ์๋ค๋ฉด 0์ผ๋ก ์ฌ ํ ๋นํ๊ณ ์ฐ๊ฒฐ๋ ์ขํ๋ก ์ด๋ํ๋ค. ๋ ์ด์ ์ฐ๊ฒฐ๋ ์ขํ๊ฐ ์๋ค๋ฉด DFS ํจ์๋ฅผ ๋ชจ๋ ์ข
๋ฃํ๊ณ ์ด์ค for ๋ฌธ์..
Algorithm/์ธํ๋ฐ(inflearn)
๐ 03 - ๋ฏธ๋ก ํ์(DFS) 7*7 ๊ฒฉ์ํ ๋ฏธ๋ก๋ฅผ ํ์ถํ๋ ๊ฒฝ๋ก์ ๊ฐ์ง์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. ์ถ๋ฐ์ ์ ๊ฒฉ์์ (1, 1) ์ขํ์ด๊ณ , ํ์ถ ๋์ฐฉ์ ์ (7, 7) ์ขํ์ด๋ค. ๊ฒฉ์ํ์ 1์ ๋ฒฝ์ด๊ณ , 0์ ํต๋ก์ด๋ค. ๊ฒฉ์ํ์ ์์ง์์ ์ํ์ข์ฐ๋ก๋ง ์์ง์ธ๋ค. ๋ฏธ๋ก๊ฐ ๋ค์๊ณผ ๊ฐ๋ค๋ฉด ์์ ์ง๋์์ ์ถ๋ฐ์ ์์ ๋์ฐฉ์ ๊น์ง ๊ฐ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ 8๊ฐ์ง ์ด๋ค. ๐ ํ์ด ๋ฐฉ๋ฒ nx - ์ด๋ํ ํ, ny - ์ด๋ํ ์ด ์ํ์ข์ฐ๋ก๋ง ์์ง์ผ ์ ์์ผ๋ฏ๋ก ์์ง์ผ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ 4๊ฐ์ง์ด๋ค. ์ฌ๊ท๋ฅผ ๋๋ฉด์ ๋ค์์ ์ด๋ํ ์ขํ๊ฐ ๊ฒฉ์ํ์ ๋ฒ์ด๋์ง ์๋์ง ํ์ธํ ๋ค์ ์ด๋์ด ๊ฐ๋ฅํ ํต๋ก๊ฐ ๋ง๋์ง ํ์ธ ํด์ผ ํ๋ค. board[nx][ny] (์ด๋ํ ์ขํ)๊ฐ 0์ด๋ผ๋ฉด ์ด๋์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ฏ๋ก ์ด๋ํ๊ณ ์ด๋ํ์์ ๋ํ๋ด๊ธฐ ์ํด b..
Algorithm/์ธํ๋ฐ(inflearn)
๐ 02 - ๊ฒฝ๋ก ํ์(์ธ์ ๋ฆฌ์คํธ) ๋ฐฉํฅ ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ง๋ฉด 1๋ฒ ์ ์ ์์ N๋ฒ ์ ์ ์ผ๋ก ๊ฐ๋ ๋ชจ๋ ๊ฒฝ๋ก์ ๊ฐ์ง ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ์๋ ๊ทธ๋ํ์์ 1๋ฒ ์ ์ ์์ 5๋ฒ ์ ์ ์ผ๋ก ๊ฐ๋ ๊ฐ์ง ์๋ ์ด 6๊ฐ์ง ์
๋๋ค. ์ด์ ๋ฌธ์ ์ ๊ฐ์ ๋ฌธ์ ์ด์ง๋ง ์ธ์ ํ๋ ฌ์ด ์๋ ์ธ์ ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํด๋ณด๋ ค๊ณ ํ๋ค. ์ ์ ์ด ์ ๋ค๋ฉด ์ธ์ ํ๋ ฌ๋ก ํ์ด๋ ๋์ง๋ง ๋ฌด์ํ ๋ง๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น, ์๊ฐ ๋ณต์ก๋ ์ฆ๊ฐ์ ๊ฐ์ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค. ๐ฉ๐ฉ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ์ธ์ ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ์์ด ์กด์ฌํ๋ค. v ์ ์ (ํ)์์ ์ด๋ ๊ฐ๋ฅํ ์ ์ ์ ๊ฐ๊ฐ ๋ฐฐ์ด์ ์ถ๊ฐํ๋ค. ๐ ํ์ด ๋ฐฉ๋ฒ v - ํ์ฌ ์ ์ , i - ๋ฐฐ์ด์ ์ธ๋ฑ์ค, ch - ํด๋น ์ ์ ์ ์ง๋ฌ๋์ง ์ฒดํฌํ๋ ๋ฐฐ์ด graph[v][i] - ํ์ฌ ์ ์ ์์ ์ด๋ํ ..
Algorithm/์ธํ๋ฐ(inflearn)
๐ 01 - ๊ฒฝ๋ก ํ์(DFS-์ธ์ ํ๋ ฌ: ๋
ธ๋ ๊ฐ์๊ฐ ์ ์ ๋) ๋ฐฉํฅ ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ง๋ฉด 1๋ฒ ์ ์ ์์ N๋ฒ ์ ์ ์ผ๋ก ๊ฐ๋ ๋ชจ๋ ๊ฒฝ๋ก์ ๊ฐ์ง ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ์๋ ๊ทธ๋ํ์์ 1๋ฒ ์ ์ ์์ 5๋ฒ ์ ์ ์ผ๋ก ๊ฐ๋ ๊ฐ์ง ์๋ ์ด 6๊ฐ์ง ์
๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ฐฉํฅ ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ง๋ฉด ์ธ์ ํ๋ ฌ๋ก ํํํ ์ ์์ด์ผ ํ๋ค. v ์ ์ (ํ)์์ i ์ ์ (์ด)์ผ๋ก ๊ฐ๋ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋ค๋ฉด 1, ์กด์ฌํ์ง ์์ผ๋ฉด 0์ผ๋ก ํ์ํ๋ค. ๐ ํ์ด ๋ฐฉ๋ฒ v - ํ์ฌ ์ ์ , i - ๋ง์ง๋ง์ผ๋ก ๋๋ฌํด์ผํ๋ ์ ์ ch - ํด๋น ์ ์ ์ ์ง๋ฌ๋์ง ์ฒดํฌํ๋ ๋ฐฐ์ด ์ฌ๊ท๋ฅผ ๋๋ฉด์ graph[v][i]๋ 1์ด๊ณ ch[i]๋ 0์ด๋ผ๋ฉด v ์ ์ ์์ i ์ ์ ์ผ๋ก ์ด๋ํ ์ ์๋ค๋ ๊ฒ์ด๋ฏ๋ก ํด๋น ์ ์ ์ผ๋ก ์ด๋ํ์์ ๋ํ๋ด๊ธฐ ์ํด ch[i]..
Algorithm/์ธํ๋ฐ(inflearn)
๐ 15 - ์๋ค์ ์กฐํฉ N๊ฐ์ ์ ์๊ฐ ์ฃผ์ด์ง๋ฉด ๊ทธ ์ซ์๋ค ์ค K๊ฐ๋ฅผ ๋ฝ๋ ์กฐํฉ์ ํฉ์ด ์์์ ์ ์ M์ ๋ฐฐ์์ธ ๊ฐ์๋ ๋ช ๊ฐ๊ฐ ์๋์ง ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. ์๋ฅผ ๋ค๋ฉด 5๊ฐ์ ์ซ์ 2 4 5 8 12๊ฐ ์ฃผ์ด์ง๊ณ , 3๊ฐ๋ฅผ ๋ฝ์ ์กฐํฉ์ ํฉ์ด 6์ ๋ฐฐ์์ธ ์กฐํฉ์ ์ฐพ์ผ๋ฉด 4+8+12, 2+4+12๋ก 2๊ฐ์ง๊ฐ ์๋ค. ๐ ํ์ด ๋ฐฉ๋ฒ ๐ต ๋์ ํ์ด ๋ฐฉ๋ฒ if๋ฌธ ์์ 2๊ฐ์ ์กฐ๊ฑด์ ๊ฐ์ด ์ฃผ์ด L(๋ ๋ฒจ)์ด k(๋ฝ๋ ๊ฐ์)์ ๊ฐ๋๋ผ๋ sum์ด 6์ ๋ฐฐ์๊ฐ ์๋๋ผ๋ฉด else๋ฌธ์ผ๋ก ์ด๋ํ๋ค. ์ด ๊ณผ์ ์์ ๊ฒฐ๊ณผ๋ ๋์ผํ๊ฒ ๋์ค์ง๋ง ์๊ฐ์ ์ก์๋จน์ ์ ์๋ค.๐คฌ L์ด k์ ๊ฐ๋ค๋ฉด else ๋ฌธ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ด ์๋ if๋ฌธ ๋ด๋ถ์์ sum์ด 6์ ๋ฐฐ์์ธ์ง๋ฅผ ํ์ธํ๊ณ ๋น ์ ธ๋์์ผ ํ๋ค. function solution(n, k, arr,..
Algorithm/์ธํ๋ฐ(inflearn)
๐ 14 - ์กฐํฉ ๊ตฌํ๊ธฐ 1๋ถํฐ N๊น์ง ๋ฒํธ๊ฐ ์ ํ ๊ตฌ์ฌ์ด ์๋ค. ์ด ์ค M๊ฐ๋ฅผ ๋ฝ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. M๊ฐ๋ฅผ ๋ฝ๋๋ค๊ณ ํ์ผ๋ฏ๋ก ์กฐํฉ์ ์ด์ฉํด์ผ ํ๋ค. N์ด 4์ด๊ณ M์ด 2์ธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์โ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด L1์ด ์ ํด์ง๋ฉด L2๋ L1 + 1๋ถํฐ N๊น์ง for ๋ฌธ์ ๋๋ฉด์ ์ ํด์ง๋ค. ๐ ํ์ด ๋ฐฉ๋ฒ s๋ for๋ฌธ์์ ์ด๊ธฐ๊ฐ์ ํด๋นํ๋ค. ๋ค์๊ณผ ๊ฐ์ด ๊ทธ๋ฆผ์ผ๋ก ํ๋ฒ ์ดํดํ๊ณ ์ธ์ฐ๋๋ก ํ์(์ค์โ) L(๋ ๋ฒจ)์ด m๊ณผ ๊ฐ๋ค๋ฉด ํ๋์ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค์ด์ง ๊ฒ์ด๋ฏ๋ก tmp๋ฅผ ์์ ๋ณต์ฌ(slice)ํ์ฌ answer์ ์ถ๊ฐํ๋ค. function solution(n, m) { let answer = []; let tmp = Array.from({ length: m }, () => 0); function DFS..
Algorithm/์ธํ๋ฐ(inflearn)
๐ 12 - ์กฐํฉ์ ๊ฒฝ์ฐ ์(๋ฉ๋ชจ์ด์ ์ด์
) nCr = n! / (n - r)!r! ๋ก ๊ณ์ฐํ๋ค. ํ์ง๋ง ์ด ๊ณต์์ ์ฐ์ง ์๊ณ ๋ค์ ๊ณต์์ ์ฌ์ฉํ์ฌ ์ฌ๊ท๋ฅผ ์ด์ฉํด ์กฐํฉ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ์
๋ ฅ์ค๋ช
์ฒซ์งธ ์ค์ ์์ฐ์ n(3
Algorithm/์ธํ๋ฐ(inflearn)
๐ 11 - ํฉํ ๋ฆฌ์ผ(DFS) ์์ฐ์ N์ ์
๋ ฅํ๋ฉด N! ๊ฐ์ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. N! = N * (N - 1) * (N - 2) * ... * 1์ด๋ค. ๋ง์ฝ N์ด 5๋ผ๋ฉด 5! = 5 * 4 * 3 * 2 * 1 = 120์ด๋ค. ๐ ํ์ด ๋ฐฉ๋ฒ ์ฌ๊ท๋ฅผ ๋๋ฉด์ n์ด 1๊ณผ ๊ฐ๋ค๋ฉด 1์ returnํ๋ค. function solution(n) { let answer; function DFS(n) { if (n === 1) return 1; else return n * DFS(n - 1); } answer = DFS(n); return answer; } console.log(solution(5));