TIL
TIL day 79
gbleem
2025. 4. 11. 12:19
1. 코딩테스트
오늘 오전에는 저번에 연습이 필요하다고 느껴진 배낭문제 유형의 DP 문제를 풀었습니다.
평범한 배낭
https://www.acmicpc.net/problem/12865
더보기
#include <iostream>
using namespace std;
int n, k;
pair<int, int> props[102];
int dp[102][100'002];
int answer = 0;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> k;
for (int i = 1; i <= n; ++i)
{
int w, v;
cin >> w >> v;
props[i].first = w;
props[i].second = v;
}
for (int i = 1; i <= n; ++i)
{
for (int j = 0; j <= k; ++j)
{
//넣을 수 있다면,
if (j + props[i].first <= k)
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j + props[i].first] + props[i].second);
else
dp[i][j] = dp[i - 1][j];
answer = max(answer, dp[i][j]);
}
}
cout << answer;
}
동전
https://www.acmicpc.net/problem/9084
더보기
#include <iostream>
using namespace std;
int t;
int coins[22];
int dp[10002];
//n개의 동전으로 m 만들기
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> t;
while (t--)
{
int n;
int m;
int answer = 0;
cin >> n;
fill(coins, coins + 22, 0);
fill(dp, dp + 10002, 0);
for (int i = 1; i <= n; ++i)
{
cin >> coins[i];
}
cin >> m;
dp[0] = 1;
for (int i = 1; i <= n; ++i)
{
for (int j = coins[i]; j <= m; ++j)
{
dp[j] += dp[j - coins[i]];
}
}
cout << dp[m] << "\n";
}
}
추가적으로 해당 유형에 대한 내용을 정리해 보았습니다.
https://gbleem.tistory.com/160
DP (배낭 문제)
1. 특징배낭 문제 유형의 경우, 특정 스텝을 나아가는 도중에 "제약조건" 을 가지고 있어서 해당 조건을 체크해주는 작업이 필요하다. 예를 들어,물건들을 고르는 방법의 수를 구하는데 "최대 무
gbleem.tistory.com
2. 언리얼
프로젝트 진행 전, 서버 공격 동기화에 대한 내용을 공부하였습니다.
https://gbleem.tistory.com/158
Unreal Engine - 데디케이티드 서버 6 (동기화)
1. 캐릭터 걷기 및 점프 동기화코드더보기//animinstance.h#pragma once#include "CoreMinimal.h"#include "Animation/AnimInstance.h"#include "DXAnimInstanceBase.generated.h"class UCharacterMovementComponent;UCLASS()class SCC_DEDICATEDX_API UDXAni
gbleem.tistory.com