Unreal5 공부/TIL
2026/04/17 TIL
anna59
2026. 4. 17. 21:06
오늘의 목표
- 아침 코드카타
- 언리얼 7번 과제 필수 기능
- 언리얼 7번 과제 도전 기능
코드카타
[문제] 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
[풀이]
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n, int m) {
vector<int> answer;
long long mcd;
long long lcm;
if (n <= m)
{
for (int i = 1; i <= n; ++i)
{
if (n % i == 0 && m % i == 0)
{
mcd = i;
}
}
}
else{
for (int i = 1; i <= m; ++i)
{
if (n % i == 0 && m % i == 0)
{
mcd = i;
}
}
}
lcm = n * m / mcd;
answer.push_back(mcd);
answer.push_back(lcm);
return answer;
}
최대공배수는 for loop으로 돌면서 둘 다 0으로 나눠지는 수를 구하고, 최소공배수는 최대공약수를 이용해서 구함.
최소 공배수 = n * m / 최대공약수
언리얼 마스터 2강
//TArray<int32> IntArray;
//IntArray.Add(5);
//IntArray.Emplace(6);
//IntArray.AddUnique(6);
//IntArray.Insert(600, 2);
//for (int32 i = 0; i < IntArray.Num(); ++i)
//{
//}
//if (intArray.Num())
//{
//}
//// [](){}
//struct FMyCustomStruct
//{
// bool operator()(const int32 A, const int32 B)const
// {
// // 내림차순
// return A > B;
// }
//};
//IntArray.Sort(FMyCustomStruct());
////IntArray.Sort([]() {});
//
//TArray<int32> ReturnIntArray = IntArray.FilterByPredicate([](const int32 FindValue) {return FindValue < 9; });
//int32 Index = IntArray.Find(5);
//bool b = intArray.Contains(5);
//IntArray.Remove(10); // 10을 전부 삭제
//IntArray.RemoveSingle(10); // 첫 10을 삭제
//if (IntArray.IsValidIndex(2)) // 인덱스가 없을 경우를 대비한 안전장치
//{
// IntArray.RemoveAt(2); // 인덱스를 기준으로 삭제.
//}
//IntArray.RemoveAll([](int32 Value) {return Value == 5; });
//IntArray.Empty();
TArray<int32> MyIntArray;
int32 random;
while (MyIntArray.Num() < 30)
{
random = FMath::RandRange(0, 1000);
if (random <= 100) {
MyIntArray.Emplace(random);
}
}
MyIntArray.RemoveAll([](int32 Value) {return Value < 50; });
MyIntArray.Sort([](const int32& A, const int32& B) {return A < B; });
TSet<int32> IntArraySet;
// 중복이 안됩니다.
IntArraySet.Add(100);
if (IntArraySet.Contains(100))
{
}
int32* FoundPtr = IntArraySet.Find(20);
for (TSet<int32>::TConstIterator It = IntArraySet.CreateConstIterator(); It; ++It)
{
if (*It < 60)
{
It.RemoveCurrent(); // 현재 메모리를 지움. Iterator 기능
}
}
TSet<int32> SetA = { 1,2,3 };
TSet<int32> SetB = { 3,5,6 };
// 공통된 것 뽑기
TSet<int32> SetC = SetA.Intersect(SetB);
// 두개 합쳐버리기
TSet<int32> SetC = SetA.Union(SetB);
SetC.Compact();
SetC.Shrink();
TArray<int32> MyArray = SetC.Array(); // Array로 자동으로 넘어감
과제
