[TIL] 2025-06-01 알고리즘 문제, 인벤토리 구현 중 델리게이트 문제
2025-06-01 TIL
알고리즘 문제
이번에는 문제를 이해하고 구현하려는 알고리즘을 고려해보는 것이 굉장히 어려웠습니다.
전체적으로 어려움이 많은 문제였는데, 이해에서 가장 어려웠던 부분은 특정 값에서 이진 트리를 위한 더미 노드를 생성하고, 해당 이진트리가 유효한지 판단하는 것이 어려웠습니다.
이 부분은 문제에서 특정 조건에 대한 직접적인 설명이 없어서 어려움을 느꼈습니다.
이진수 변화는 간단했지만, 포화 이진트리를 탐색할 때 유효한지 판단하는 알고리즘을 구현하는 것이 가장 어려웠습니다.
어제까지는 상대적으로 간단한 문제들이었는데, 오늘 굉장히 어려운 문제를 푼 것 같습니다.
[프로그래머스][C++] 표현 가능한 이진트리
최종 프로젝트
인벤토리 구현 중 델리게이트 문제
인벤토리의 개념을 가지는 컴포넌트에서 아이템을 추가하고 제거하는 로직을 구현하고 아이템에 대한 데이터들을 TMap으로 관리하도록 해주었습니다.
하지만, 해당 인벤토리를 UI와 연결을 하는 중에 DECLARE_DYNAMIC_MULTICAST_DELEGATE
는 TMap 자료구조를 사용할 수 없다는 문제를 발견했습니다.
해당 문제에 대해서 구글링해본 결과 “TMap, TSet등의 자료구조가 직렬화될 수 없기 때문에 발생했다”라고 파악했습니다.
이 문제를 해결하기 위해서는 TMap등의 자료구조를 구조체로 래핑하거나 DECLARE_MULTICAST_DELEGATE
를 사용하여 해결할 수 있을 것 같습니다.
우선 래핑하는 것은 코드 복잡도를 증가할 것 같아서 일단 배제해보았습니다.
DECLARE_MULTICAST_DELEGATE
은 UPROPERTY와 동적 바인딩을 미지원하여 배제했습니다.
기존에 고려하던 방법을 선택하지 않았기 때문에 다른 방법을 좀 더 찾아 보았고, 구현에 사용한 자료구조를 변겅하는 방법도 고려해보았습니다.
다른 자료구조로 변경하는 것을 고려해보기 위해서 다른 사람들이 구현한 코드들을 살펴보았습니다.
많은 사람들이 구조체 타입의 TArray
를 사용하여 인벤토리를 구현하였습니다.
인벤토리의 특정 슬롯에서 데이터가 다양해질수록 해당 구조체가 유리하다고 판단되어 저 또한 구조체 타입의 TArray
로 변경하고자 합니다.
오늘은 해당 문제를 해결하는 방법까지 살펴보았고 자료구조를 변경하여 해당 자료구조에 맞게 로직을 수정하지 않았습니다.
자료구조 및 로직은 내일 변경하고자 합니다.
댓글남기기