Skip to content

Commit

Permalink
#10 22.06.03 > 1번 풀어보기
Browse files Browse the repository at this point in the history
  • Loading branch information
beurmuz committed Jun 2, 2022
1 parent e6daf26 commit 395e4ad
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 10 deletions.
25 changes: 25 additions & 0 deletions src/inf/dynamic_programing/1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
'use strict';

function solution(n) {
let answer = 0;
let dy = Array.from({length: n+1}, () => 0);
dy[1] = 1;
dy[2] = 2;
for(let i = 3; i <= n; i++) {
dy[i] = dy[i-2] + dy[i-1];
}
answer = dy[n];
return answer;
}

console.log(solution(7));

/*
- 우선 dy 배열 선언하기 (n+1의 길이, 0으로 모두 초기화)
- dy[n]에는 n번째 계단까지 가는 방법의 수
- 1: 1개(1)
- 2: 2개(1+1, 2)
- 3: 3개(1+1+1, 1+2, 2+1), 1번 계단에서 오는 경우의 수(1개)와 2번 계단에서 오는 경우의 수(2개)의 합
- 4: 5개(1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2), 2번 계단에서 오는 경우의 수(2개)와 3번 계단에서 오는 경우의 수(3개)의 합
*/
20 changes: 10 additions & 10 deletions src/inf/dynamic_programing/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# List
|번호|정답여부|풀이|개념|
|:---:|:---:|:---:|:---:|
|1||||
|2||||
|3||||
|4||||
|5||||
|
# Memoization
> [JavaScript dynamic_programming](../../../theory/dynamic_programming.md)
# 정리
# List
|번호|정답여부|재응시|
|:---:|:---:|:---:|
|1|X|다시 풀기|
|2|||
|3|||
|4|||
|5|||
6 changes: 6 additions & 0 deletions theory/dynamic_programming.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# dynamic_programming (동적 계획법)
- 동적 계획법이란 큰 문제를 작은 단위로 쪼개어 푸는 방법
- 작은 단위의 문제를 풀어 답을 저장해놓은 후, 이를 이용해 점차 그 (데이터)범위를 넓혀나가면서 답을 구하는 방법
- 이러한 것을 '점화식'이라고 함 (dy[n] === dy[n-1] + 3 ...)
- 점화식의 관계를 아는게 포인트 (관계식을 잡아내는 게 핵심)
- 동적 계획법은 dy라는 배열이 반드시 필요

0 comments on commit 395e4ad

Please sign in to comment.