
해당 게시글은 Udemy 사이트에 존재하는 언리얼 5와 관련된 강의 영상에 대한 내용을 정리하는 것을 목표한다. 원 강의 제목은 【한글자막】 Unreal Engine 5 C++ 개발자: C++ 학습하고 비디오 게임 제작하기 이다. Section 1은 언리얼에 대한 간단한 소개와 설치에 관한 내용이므로 생략하고 Section 2부터 작성하였다. 이번 Seciton의 목표는 피직스를 기반으로 한 게임으로, 제한된 수를 가진 발사체로 가능한 많은 것을 파괴하며 게임이 끝나면 레벨을 다시 시작하는 것이다. 이를 위해서 피직스 다루는 법, 발사체 스폰, 발사체 조준, 레벨 제작, 탄약 제한 등에 배우게 된다. 프로젝트 생성 강의의 첫 시작이나 다름 없는 프로젝트 생성 관련 내용이다. 영상에서와 다르게 나는 언리얼..
문제링크 : https://www.acmicpc.net/problem/15993 15993번: 1, 2, 3 더하기 8 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 100,000보다 작거나 같다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int T, n; ll dp[100001][2]; //짝 0, 홀 1 const int MOD = 1000000009; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >>..
문제링크 : https://www.acmicpc.net/problem/16195 16195번: 1, 2, 3 더하기 9 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. 단, 사용한 수의 개수는 m개 이하 이어야 한다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int T, n, m, dp[1001][1001]; const int MOD = 1000000009; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> T..
문제링크 : https://www.acmicpc.net/problem/9177 9177번: 단어 섞기 입력의 첫 번째 줄에는 1부터 1000까지의 양의 정수 하나가 주어지며 데이터 집합의 개수를 뜻한다. 각 데이터집합의 처리과정은 동일하다고 하자. 각 데이터집합에 대해, 세 개의 단어로 이루어 www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int T, dp[201][201]; //각 단어의 길이 string s1, s2, s3; bool func(int n1, int n2) { if(n1==s1.size() && n2==s2.size()) return..
문제링크 : https://www.acmicpc.net/problem/15992 15992번: 1, 2, 3 더하기 7 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. 단, 사용한 수의 개수는 m개 이어야 한다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int T, n, m, dp[1001][1001]; const int MOD = 1000000009; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> T; d..
문제링크 : https://www.acmicpc.net/problem/2780 2780번: 비밀번호 각각의 Test case에 대해서 조건을 만족하는 비밀번호의 개수를 출력하라. 단, 수가 매우 커질 수 있으므로 비밀번호의 개수를 1,234,567으로 나눈 나머지를 출력하라. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int T, N, dp[1001][10]; //가능한 숫자, 비밀번호 길이 const int MOD = 1234567; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> T..
문제링크 : https://www.acmicpc.net/problem/21317 21317번: 징검다리 건너기 산삼을 얻기 위해 필요한 영재의 최소 에너지를 출력한다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int N, K, dp[21][2]; pii arr[21]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N; for(int i=1; i> a >> b; arr[i] = {a, b}; } cin >> K; for(int i=0; i 작은 점프 큰 점프 -> 큰 점프 0 1 차..
문제링크 : https://www.acmicpc.net/problem/1519 1519번: 부분 문자열 뽑기 게임 첫째 줄에 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; string N; int dp[1000001]; int func(string s) { if(s.size()==1) return -1; //패배 int n = stoi(s); if(dp[n]!=MAX) return dp[n]; bool flag = 0; //승리, 패배 체크용 for(int i=1; i N; for(i..
문제링크 : https://www.acmicpc.net/problem/1354 1354번: 무한 수열 2 첫째 줄에 5개의 정수 N, P, Q, X, Y가 주어진다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; ll N, P, Q, X, Y; mapdp; ll func(ll n) { if(n> N >> P >> Q >> X >> Y; cout
문제링크 : https://www.acmicpc.net/problem/1495 1495번: 기타리스트 첫째 줄에 N, S, M이 주어진다. (1 ≤ N ≤ 50, 1 ≤ M ≤ 1,000, 0 ≤ S ≤ M) 둘째 줄에는 각 곡이 시작하기 전에 줄 수 있는 볼륨의 차이가 주어진다. 이 값은 1보다 크거나 같고, M보다 작거나 같다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int N, S, M, arr[51], dp[51][1001]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> ..
문제링크 : https://www.acmicpc.net/problem/15991 15991번: 1, 2, 3 더하기 6 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; const int MOD = 1000000009; int T, n; ll dp[100001] = {0, 1, 2, 2, 3, 3, 6}; //초기화 6까지(3, 3) int main() { ios_base::sync_with_stdio(0); cin.tie(0); ..
문제링크 : https://www.acmicpc.net/problem/23815 23815번: 똥게임 이 게임은 똥냄새가 너무 나서 도저히 볼 수가 없다! 따라서 당신은 직접 똥게임을 하지 않고 프로그램한테 똥게임을 시킬 것이다. 처음에는 사람 1명으로 시작한다. 당신에게는 총 $N$번의 턴 www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; ll n, dp[100001][2]; //건너뜀(1) 체크 string s1, s2; ll func(int i, int flag, string s1, string s2) { ll tmp1 = 0, tmp2 = 0; i..
문제링크 : https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; string s, result; int cnt; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> s; for(int i=0; i
문제링크 : https://www.acmicpc.net/problem/9711 9711번: 피보나치 첫 번째 라인에는 정수 T개의 테스트 케이스가 주어진다. 각 테스트 케이스는 정수 P와 Q가 주어진다. www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; int T, P, Q; ll dp[10001]; //합산시 int 범위 초과 int func(int p, int q) { dp[1]=1; dp[2]=1; for(int i=3; i> T; for(int i=1; i> P >> Q; cout
문제링크 : https://www.acmicpc.net/problem/25634 25634번: 전구 상태 뒤집기 $N$개의 전구가 일렬로 세워져 있다. 전구는 켜져 있을 수도 있고 꺼져 있을 수도 있다. 만약 $i$번째 전구가 켜져 있다면 그 전구의 밝기는 $a_i$이다. 연우는 $N$개의 전구 중 연속한 전구를 한 개 www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = 987654321; ll N, a[200001], b[200001], dp[200001], sum; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >..