백준(C언어) 풀이/다이나믹 프로그래밍 5

백준(Python) 18353번 병사 배치하기 풀이

Python으로 구현한 18353번 병사 배치하기 문제 풀이입니다. https://www.acmicpc.net/problem/18353 18353번: 병사 배치하기 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 2,000) 둘째 줄에 각 병사의 전투력이 공백을 기준으로 구분되어 차례대로 주어진다. 각 병사의 전투력은 10,000,000보다 작거나 같은 자연수이다. www.acmicpc.net n = int(input()) array = list(map(int, input().split())) # 순서를 뒤집어 '가장 긴 증가하는 부분 수열' 문제로 변환 array.reverse() # 다이나믹 프로그래밍을 위한 1차원 DP 테이블 초기화 dp = [1] * n # 가장 긴 증가하는 부분 수열(LIS) 알고리..

백준(C) 2748번 피보나치 수2 풀이

C로 구현한 2748번 피보나치 수2 문제 풀이입니다. https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net #include long long d[91]; long long fibo(int x) { if (x == 1) return 1; if (x == 2) return 1; if (d[x] != 0) return d[x]; return d[x] = fibo(x - 1) + fibo(x - 2); } int mai..

백준(C) 10870번 피보나치 수 5 풀이

C로 구현한 10870번 피보나치 수 5 구하기 문제 풀이입니다. https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net #include int n[21]; int fibo(int x) { if(x == 0) return 0; if(x == 1) return 1; if(n[x] != 0) return n[x]; return n[x] = fibo(x - 1) + fibo(x - 2); } int main() { i..

백준(C) 11727번 2xn 타일링2 풀이

C로 구현한 2752번 2xn 타일링2 문제 풀이입니다. https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 이 문제의 규칙성을 찾기 위해서 아래의 글을 참고하시면 좋을거 같습니다. https://unie2.tistory.com/40?category=875841 백준(C) 11726번 2xn 타일링 풀이 C로 구현한 2752번 세수정렬 구하기 문제 풀이입니다. https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형..

백준(C) 11726번 2xn 타일링 풀이

C로 구현한 2752번 세수정렬 구하기 문제 풀이입니다. https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 문제에서 n이 1일 때 1x2 혹은 2x1 타일로 채우는 방법의 수는 1가지 이다. n이 2일 때는 가로로 긴 타일 2개를 붙여서 채우는 방법 하나와 세로로 긴 타일 2개를 붙여서 채우는 방법 하나로 총 방법의 수는 2가지 이다. n이 3일 때의 방법의 수는 3이며, 만약 이미 많은 타일이 채워져 있고 2개의 타일을 추가하고자 할 때 세로로 긴 타일을 추가하는 ..