다이나믹 프로그래밍(30)
-
[BOJ 9084] 동전
- 문제 요약 동전의 종류가 주어질 때, 주어진 금액을 만드는 모든 방법을 세는 프로그램을 작성하시오.입력의 첫 줄에는 테스트케이스의 수 T가 주어진다.각 테스트케이스의 첫 번째 줄에는 동전의 가지 수 N(1(같은 동전이 여러 번 주어지는 경우는 없다. 방법의 수는 2^31-1보다 작다.) - 알고리즘 정리 DP[i] (i원을 만들 수 있는 방법의 수)DP[i] = DP[i] + DP[i - (동전의 금액)] - 코드 작성 #includeusing namespace std;#define MAX 10001typedef long long ll;int t,n,m,arr[21],dp[MAX];int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout..
2024.11.18 -
[BOJ 15989] 1, 2, 3 더하기 4
- 문제 요약 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.합을 나타낼 때는 수를 1개 이상 사용해야 하며, 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다.(테스트케이스의 수 T가 주어진다. n은 양수이며 10,000보다 작거나 같다.) - 알고리즘 정리 DP 문제입니다. DP[X][a] (정수 X를 만들 때 a로 끝나는 경우의 수) DP[i][1] = DP[i-1][1] DP[i][2] = DP[i-2][1] + DP[i-2][2] DP[i][3] = DP[i-3][1] + DP[i-3][2] + DP[i-3][3] - 코드 작성 #includeusing namespace std;#define MAX 10001int t,n,dp..
2024.11.18 -
[BOJ 2225] 합분해
- 문제 요약 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 프로그램을 작성하시오.덧셈의 순서가 바뀐 경우는 다른 경우로 센다. (1+2와 2+1은 서로 다른 경우). 또한 한 개의 수를 여러 번 쓸 수도 있다.첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다.(1 - 알고리즘 정리 DP 문제입니다. dp[K][N] = X (K개를 더해서 N을 만들 수 있는 경우의 수가 X)dp[K][N] = dp[K-1][0] + dp[K-1][1] + ... + dp[K-1][N] 위와 같이 점화식을 작성하면 문제를 해결할 수 있습니다. - 코드 작성 #includeusing namespace std;#define MAX 201typedef long long ll;l..
2024.11.18 -
[BOJ 28360] 양동이 게임
https://www.acmicpc.net/problem/28360 28360번: 양동이 게임 절대오차는 실제 정답과 출력값의 차이, 상대오차(오차율)는 절대오차를 실제 정답으로 나눈 값을 의미한다. 즉, 실제 정답을 $a$, 출력값을 $b$라고 하면, 절대오차는 $\vert a - b \vert$, 상대오차는 www.acmicpc.net - 문제 요약 찬우는 천하제일 코딩대회 참가자들과 간단한 게임을 하기로 했다. 게임은 '양동이 게임'으로, 맨 위의 양동이에 물을 100만큼 부어 흘려보냈을 때 최종적으로 가장 많은 물이 담긴 양동이를 선택하면 이기는 게임이다. 양동이를 고르기 전까지는 연결 상태를 알 수 없다. 하지만 찬우는 양동이들이 어떻게 연결되어 있는지 이미 알고 있는 상태였다! 찬우가 게임을 ..
2023.07.23 -
[BOJ 11985] 오렌지 출하
https://www.acmicpc.net/problem/11985 11985번: 오렌지 출하 첫째 줄에 오렌지의 개수 N (1 ≤ N ≤ 20,000), 한 상자에 넣을 수 있는 오렌지 개수의 최댓값 M (1 ≤ M ≤ 1,000, M ≤ N), 상자를 포장하는 비용 K (0 ≤ k ≤ 1,000,000,000)가 주어진다. 둘째 줄부터 N개의 www.acmicpc.net 개수 - 문제 요약 Juicy Orange Industry(JOI)는 맛있는 오렌지를 포장해서 출하하는 것이 주된 업무인 회사이다. JOI사에서는 수집한 N개의 오렌지를 상자에 넣어서 출하한다. 먼저, 오렌지는 공장에 있는 컨베이어 벨트 위에 나란히 놓아야 한다. 컨베이어 벨트 위에 놓여져있는 오렌지는 앞에서부터 순서대로 1부터 N까..
2023.05.07 -
[BOJ 1135] 뉴스 전하기
https://www.acmicpc.net/problem/1135 1135번: 뉴스 전하기 민식이는 회사의 매니저이다. 그리고, 민식이는 회사의 중요한 뉴스를 모든 직원에게 빠르게 전달하려고 한다. 민식이의 회사는 트리 구조이다. 모든 직원은 정확하게 한 명의 직속 상사가 있다 www.acmicpc.net - 문제 요약 민식이는 회사의 매니저이다. 그리고, 민식이는 회사의 중요한 뉴스를 모든 직원에게 빠르게 전달하려고 한다. 민식이의 회사는 트리 구조이며 모든 직원은 정확하게 한 명의 직속 상사가 있다. 자기 자신은 그들 자기 자신의 직접 또는 간접 상사가 아니고, 모든 직원은 민식이의 직접 또는 간접적인 부하이다. 민식이는 일단 자기 자신의 직속 부하에게 한 번에 한 사람씩 전화를 한다. 뉴스를 들은 ..
2023.05.07