피보나치 수
카펫
예상 대진표
N개의 최소공배수
// 유클리드 호제법을 활용한 최대공약수 구하기
int gcd(int a, int b){
if (a < b) swap(a, b);
if (b == 0) return a;
return gcd(b, a % b);
}
int lcm(int a, int b){
return a * b / gcd(a, b);
}
멀리 뛰기
Event Construct를 통해서 Play Animation을 실행을 하는데, 로그를 찍어보니 로그도 출력이 안 됨Event On Initialized를 통해서 로그를 출력해보니, 로그 출력은 되나 애니메이션 재생은 안 됨 -> 하지만 Delay를 통해 지연시키고 애니메이션 재생을 하니 정상적으로 재생됨NativeConstruct() 함수에서 Super::NativeConstruct() 호출을 해주지 않아서 정상적으로 Construct 과정이 생략되어서 Event Construct가 정상적으로 작동하지 않았음ActivationOwnedTags를 활용해서 임시로 부착함. 점프 실행 시에 CancelAbilities() 함수를 활용해서 Tag가 부착된 Ability를 캔슬하고자 했는데, 정상적으로 동작이 되지 않음AbilityTags에 태그를 할당해야 함AbilityTagsAbilitySpec에 항상 들어있음ActivationOwnedTagsCancelAbilities()AbilityTags를 확인하고 캔슬함ActivationOwnedTags는 실행 중이라고 알려주는 태그이고, 구분을 하지 못하기 때문에 Ability 자체를 구분하기 위해서는 AbilityTags에 할당이 필요함TryActivateAbilityByClass()를 통해서 Ability를 실행시키면 이미 Ability가 실행되고 있으면 갱신되는 것이 아니라 기존의 것이 유지되고 시도는 캔슬이 됨CancelAllAbilities()를 통해서 실행되고 있는 Ability를 캔슬하고 실행되게끔 구현NewObject() 또는 SpawnActor()를 통해 생성하면서 등록UPROPERTY() 매크로를 통해 멤버 변수가 GC에 등록이 됨