개요animInstance를 c++로 만들어봤다. animInstance를 c++로 하면 어떤 장점이 있을지 생각해보았는데원하는 프로퍼티를 쉽게 가져다 쓸 수 있다.animNotify를 커스텀할 수 있다.정도가 있는 것 같다. AnimInstanceAnimInstance를 상속받는 클래스를 만들어주자.헤더파일에는 다음 함수들을 선언해주는데NativeInitializeAnimation() : animInstance가 초기화될 때 실행NativeUpdateAnimation(float DeltaSeconds) : animInstance가 매 tick update될 때 실행따라서 NativeInitializeAnimation()에서 필요한 actor나 component를 받아오고NativeUpdateAnimat..
개요queue가 가지는 특징과 STL queue의 사용법을 정리해봤다.Queuequeue는 뒤로 원소를 삽입하고 앞에서 원소를 꺼내는 "FIFO" 자료구조이다.특징으로는원소 삽입 O(1)원소 제거 O(1)원소 상단/하단 확인 O(1)임의의 원소 접근 불가구현배열로 간단히 구현 가능하다.앞과 뒤의 index를 확인해야하므로 head, tail이 필요하다.int q[100]int head = 0;int tail = 0;head는 맨 앞의 원소를 가르키고 tail의 경우 맨 뒤의 원소의 index + 1의 값을 가지고 있다.그 이유는 queue가 비었는지 확인을 head == queue로 쉽게 구할 수 있기 때문이다.기능 구현push : q[tail++] = datapop : head++;front : q[..
문제https://www.acmicpc.net/problem/6198풀이처음 풀이vector의 빌딩들의 높이를 차례대로 할당한 후 빌딩별로 자신보다 높거나 같은 빌딩이 나올때까지의 빌딩 수를 count하는 방식으로 풀었다.이 방법은 이중 for문을 사용해서 시간복잡도는 O(N^2)이다.하지만 시간복잡도를 O(N)으로 줄이는 방법이 있다는데.....#include using namespace std;int main() { ios::sync_with_stdio(0); cin.tie(0); int n; long long ans = 0; cin >> n; vector h(n, 0); for (int i = 0; i > h[i]; for (int i = 0; i monotonic st..
개요stack 자료구조가 가지는 성질과 stl stack의 사용법을 정리해봤다.StackStack은 배열이나 연결리스트에서 마지막에 원소를 추가하거나 삭제, 접근할 수 있다는 제약조건이 들어간 자료구조이다.처음들어간 원소가 제일 늦게 나온다는 의미의 "FILO" 자료구조라고 한다.Stack의 성질은 다음과 같다.원소 추가 O(1)원소 제거 O(1)상단 원소 확인 O(1)상단이 아닌 나머지 원소들의 확인 변경 원칙적으로 불가능구현배열로 간단하게 구현할 수 있다.필요한 요소는 원소를 삽입할 배열과 index를 저장할 top만 있으면 된다.int stack[100];int top = 0;top은 원소가 삽입될 index를 가리키고 있다.따라서push : stack[top] = data;pop : top--;t..
개요Reflection이란 프로그램의 런타임 시점에서 객체의 정보, 구조를 관리 수정할 수 있게 엑세스 하는 것을 의미합니다.C++에서는 기본적으로 지원하지 않아 언리얼 엔진 자체적으로 구현되어있습니다.이를 '언리얼 프로퍼티 시스템'이라고 하고 메크로나 함수 형태로 되어 있으며 C++과 블루프린트의 연동이나 Garbage Collection을 사용할 수 있도록 해줍니다. 언리얼 매크로언리얼의 리플렉션 시스템은 매크로를 사용해 C++ 코드에서 메타데이터를 정의합니다. 매크로를 통해 C++에서 정의한 클래스, 함수, 변수등이 블루프린트나 에디터에 노출될 수 있습니다.언리얼 리플렉션을 위한 매크로 함수는 UCLASS(), UPROPERTY(), UFUNCTION(), UENUM(), USTRUCT()이 있습니..