220 words
1 minutes
[BOJ] 동전 나누기 1
TimeLimit | MemoryLimit | Condition | TAG |
---|---|---|---|
0.5s | 4MB | 1 ≤ n ≤ 100 1 ≤ k ≤ 10,000 | Dynamic Programming |
기본적인 dp 문제이고, 연습하기 좋은 문제였던 것 같습니다. 재미있던 문제였습니다.
정답 코드
코드와 같이 포문을 돌리면 중복 체크를 할 필요가 없어유 순서 섞이는 경우가 발생을 안 하기 때문에 이렇게 간단히 solve할 수 있습니다.
처음에 메모리 제한 4mb 보고서 뭐지? 이거 어떻게 품? 이러다가 범위 보고서 딱 풀었네요
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
using ll = long long;
int n, k;
int num[101];
int dp[10001];
int main() {
ios_base::sync_with_stdio(false); cin.tie(nullptr);
cin >> n >> k;
for(int i = 0; i < n; i++) cin >> num[i];
dp[0] = 1;
for(int i = 0; i < n; i++) {
for(int j = num[i]; j <= k; j++) dp[j] += dp[j - num[i]];
}
cout << dp[k];
return 0;
}
[BOJ] 동전 나누기 1
https://compy07.github.io/Blog/posts/boj/2239/