Algorithm(218)
-
[BOJ] 12865번 : 평범한 배낭
1. problem : https://www.acmicpc.net/problem/12865 2. solution 1 :#include using namespace std;int n, k; int w[100005], v[100005];int d[100005]; // 무게에따른 최대 value값 저장 int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> k; for (int i = 1; i > w[i] >> v[i]; for (int i = 1; i = w[i]; m--) { d[m] = max(d[m], d[m - w[i]] + v[i]); } } cout 1. 무게에 따른 최대 value값을 저장하는 table을 정의한다.2. ..
2024.09.06 -
[BOJ] 1026번 : 보물
1. problem : https://www.acmicpc.net/problem/1026 2. solution 1 :#include using namespace std;int n; int a[55];int b[55]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 0; i > a[i]; for (int i = 0; i > b[i]; sort(a, a + n); sort(b, b + n, [](int& x, int& y) { return x > y; }); int ans = 0; for (int i = 0; i greedy 하게 들어갔다. a라는 수열을 오름차순으로, b라는 수열은 내림차순으로 정렬한 뒤,..
2024.09.06 -
[BOJ] 2217번 : 로프
1. problem : https://www.acmicpc.net/problem/2217 2. solution 1 :#include using namespace std;int n;int weights[100005]; int d[100005];int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 0; i > weights[i]; sort(weights, weights + n); for (int i = 0; i weights를 sort 해서 오름차순으로 정렬한 다음, 범위를 하나씩 좁혀가면서 무게의 분산을 고려해 최대 무게를 구했다. greedy 알고리즘을 이용했다.
2024.09.06 -
[BOJ] 1931번 : 회의실 배정
1. problem : https://www.acmicpc.net/problem/1931 2. solution 1 :#include using namespace std;int n;vector> v; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 0; i > s >> e; v.push_back({s,e}); } sort(v.begin(), v.end(), [](pair&a, pair&b) { if (a.second != b.second) return a.second greedy 알고리즘을 이용한 풀이다. vector는 각 회의시간의 시작과 끝을 담기 위해 , pair 로 정의하였고, greedy를 쓰기 위해서..
2024.09.06 -
[BOJ] 11047번 : 동전 0
1. problem : https://www.acmicpc.net/problem/11047 2. solution1 :#include using namespace std;int n, k; int coins[12]; int d[12]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> k; for (int i = 1; i > coins[i]; for (int i = n; i >= 1; i--) { if (k >= coins[i]) { int maxcnt = k / coins[i]; k -= maxcnt * coins[i]; d[i] = maxcnt; } } int ans = 0; for (int i = 1; i ..
2024.09.06 -
[BOJ] 2011번 : 암호코드
1. problem : https://www.acmicpc.net/problem/2011 2. solution 1 :#include using namespace std;int d[5005]; int nums[5005];const int mod = 1000000;int main(void) { ios::sync_with_stdio(0); cin.tie(0); string s; cin >> s; for (int i = 1; i 0) d[i] = (d[i] + d[i - 1]) % mod; int x = nums[i - 1] * 10 + nums[i]; if (x >= 10 && x source code 출처 : https://github.com/encrypted-def/basic-algo-lec..
2024.09.05