본문 바로가기
알고리즘/DP

백준 2839번 : 설탕 배달

by Jason95 2021. 6. 26.

문제 링크 : https://www.acmicpc.net/problem/2839

내 풀이(2021.6.26.) : DP

#include <iostream>
#include <algorithm>

using namespace std;

int dp[5001];

int main() {
	int N; cin >> N;
	dp[0] = 0;
	dp[1] = 0;
	dp[2] = 0;
	dp[3] = 1;
	dp[4] = 0;
	dp[5] = 1;
	for (int i = 6; i <= N; i++)
	{
		if ((dp[i - 3] == 0) && (dp[i - 5] == 0)) continue;
		else if (dp[i - 3] == 0) dp[i] = dp[i - 5] + 1;
		else if (dp[i - 5] == 0) dp[i] = dp[i - 3] + 1;
		else dp[i] = min(dp[i - 3], dp[i - 5]) + 1;
	}

	if (dp[N] == 0) cout << -1;
	else cout << dp[N];

	return 0;
}	

'알고리즘 > DP' 카테고리의 다른 글

백준 1463번 : 1로 만들기  (0) 2021.06.26
백준 2565번 : 전깃줄  (0) 2021.02.03
백준 2342번 : Dance Dance Revolution  (0) 2021.02.01
백준 10844번 : 쉬운 계단 수  (0) 2021.01.30
백준 11660번 : 구간 합 구하기 5  (0) 2021.01.29