
출처 : 나무위키
힙(우선순위 큐)은 우선 순위 관련 문제나 K번째 최대값 찾기 같은 문제에서 쓸 수 있다.
데이터를 삽입 시 아래와 같은 과정을 반복해 규칙에 맞게 만든다

출처 : 나무위키
힙은 배열을 이용해 만들기 때문에 만약 노드의 인덱스가 i라면,
왼쪽 자식은 인덱스 2 * i + 1, 오른쪽 자식은 인덱스 2 * i + 2, 부모 노드는 인덱스 (i - 1) / 2 (정수 나눗셈)
로 쉽게 구할 수 있다.
C++에선 make_heap 과 sort_heap으로 간단하게 구현할 수 있다.
추가로 push_heap도 있다.
다익스트라라는 과학자가 고안해서 다익스트라 알고리즘이다.
최소 비용의 정점을 빠르게 선택하기 위한 알고리즘이고 힙을 사용한다.
가장 비용이 적은 경로부터 탐색하고 탐색 과정에서 경로 비용을 업데이트하면서 최단 경로를 찾는다.
힙을 사용하지 않으면 O(n) 이지만
힙을 사용하면 O(E log V)정도로 끝낼 수 있다.
여기서 E는 간선(Edge) 이고 V는 정점(Vertex) 이다.
다익스트라 알고리즘에 대해 쉽고 자세히 설명한 영상이다.
UCLASS(Config = Game)로 환경설정에서 변수를 설정하게 만들 수 있다.
언리얼 - 환경설정 파일
Subsystem의 기본값 설정 같은 것들은 UDeveloperSetting을 상속받아서 하면 된다.
UCLASS(Config=Game)이랑 UPROPERTY(Config, EditAnywhere)를 이용해서 프로젝트 세팅에 이 클래스를 설정할 수 있다.
GetDefault<>()를 써서 클래스의 CDO를 이용해 값을 가져올 수 있다.
저장은 Default{Config=에 쓴 곳}.ini 파일에 저장되게 된다.
UI나 이런 언리얼 Editor 설정에 관한건
benui <<< 이분이 기가막히게 정리해놨으니까 가서 보기
PostEditChangeProperty로 값이 바뀌면 함수 호출된다.
meta에 EditCondition = "MyValue > 0"
이런식으로 활성화 비활성화 조건도 설정할 수 있다.
ServerTravel에서 매개변수로 URL을 받는데 진짜 WebURL처럼 ?뒤에 정보들을 넣을 수 있다.
GameMode에 있는 PreLogin에서 URL에 저장되있는 데이터를 알 수 있다. (ProcessServerTravel도 알 수 있는 듯?)