본문 바로가기

algorithm/DP4

[프로그래머스] 2 * n 타일링 https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 �� programmers.co.kr 그려보면 점화식을 찾을 수 있는 문제 d[n] = d[n-1] + d[n-2] d 는 2*n 직사각형을 만들 수 있는 방법의 수가 저장되는 배열 function solution(n) { var answer = 0; let d = []; d[0] = 1; d[1] = 1; if (n === 0 || n === 1) return 1; if (n >.. 2020. 8. 24.
[백준/9461] 파도반 수열 https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하 www.acmicpc.net #include using namespace std; long long arr[101]; long long p(int n) { if .. 2020. 4. 3.
[백준/1003] 피보나치 함수 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net #include using namespace std; int z = 0; int one = 0; int zo[41][2]; int arr[41]; long long f(int n) { if (n == 0) { return arr[0]; } else if (n == 1) { return arr[1]; } if (arr[n] != -1) { return arr[n]; } else { arr[n] = f(n - 2) + f(n - 1); zo[n][0] = zo[n - 2][0] + zo[n - 1.. 2020. 4. 3.
[백준/2748] 피보나치 수 2 https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 www.acmicpc.net #include using namespace std; long long arr[100]; long long f(int n) { if.. 2020. 4. 3.