목록Algorithm/Dynamic Programming (32)
우노

문제 링크 https://www.acmicpc.net/problem/9095 풀이 해당 문제는 규칙을 찾는 것이 중요합니다. 따라서, 아래 그림을 통해 규칙을 찾아보겠습니다. 우선, 4 를 만들 수 있는 조합은 7가지로 이루어져있습니다. 1 + 로 시작하는 조합 1 + 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 1 + 3 2 + 로 시작하는 조합 2 + 1 + 1 2 + 2 3 + 로 시작하는 조합 3 + 1 즉, 1 + 로 시작하는 조합의 개수는 4 개입니다. 이는, 3 을 만들 수 있는 조합의 개수와 동일합니다. 또한, 2 + 로 시작하는 조합의 개수는 2 개입니다. 이는, 2 를 만들 수 있는 조합의 개수와 동일합니다. 마지막으로, 3 + 로 시작하는 조합의 개수는 1 개입니다. 이는, ..
문제 링크 https://www.acmicpc.net/problem/2156 풀이 포도주는 두 잔까지만 연달아 마실 수 있다. Wine 라는 배열이 존재하며, Wine[N] 은 N 번째 잔의 양을 의미한다. D 라는 배열이 존재하며, D[N] 은 N 번째 잔까지 탐색했을 때의 마실 수 있는 최대 양을 의미한다. D[4] 는 4번째 잔까지 탐색했을 때, 마실 수 있는 최대 양을 의미한다. D[N] 은 아래와 같은 경우의 수로 계산할 수 있다. Wine[N] 번째 잔을 마신다. Wine[N - 1] 번째 잔을 마셨을 경우 Wine[N - 1] 번째 잔과 Wine[N] 번 째 잔까지 총 2 잔을 마셨으므로, 더 이상의 잔을 더할 순 없다. 따라서, D[N] 은, [N - 3] 번째 잔까지 마신 포도주의 양 D..