[250207 TIL] 다른 클래스의 함수를 동적으로 호출 가능한 기능, 델리게이트
1️⃣ 알고리즘 코드카타
[ 성격 유형 검사하기 ]
https://school.programmers.co.kr/learn/courses/30/lessons/118666
🤖 AI 피드백
1. vector 대신 unordered_map 활용 가능
2. 불필요한 find 사용 → unordered_map을 사용하면 불필요
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
string solution(vector<string> survey, vector<int> choices) {
unordered_map<char, int> scoreMap = {
{'R', 0}, {'T', 0}, {'C', 0}, {'F', 0},
{'J', 0}, {'M', 0}, {'A', 0}, {'N', 0}
};
vector<int> choiceScore = {3, 2, 1, 0, 1, 2, 3}; // 1~7에 대한 점수
for (int i = 0; i < survey.size(); ++i) {
char disagree = survey[i][0];
char agree = survey[i][1];
if (choices[i] < 4) { // 비동의 선택
scoreMap[disagree] += choiceScore[choices[i] - 1];
} else if (choices[i] > 4) { // 동의 선택
scoreMap[agree] += choiceScore[choices[i] - 1];
}
}
string answer = "";
vector<pair<char, char>> personalityPairs = {{'R', 'T'}, {'C', 'F'}, {'J', 'M'}, {'A', 'N'}};
for (auto& p : personalityPairs) {
answer += (scoreMap[p.first] >= scoreMap[p.second]) ? p.first : p.second;
}
return answer;
}
💭 코드카타 회고
unordered_map은 정렬이 안돼서 vector를 사용한 건데
카운트는 unordered_map으로 하고 성격유형을 판단할 때 map으로 하면 되는구나!
하나의 자료구조를 사용하려하는 고정관념이 있었던 것 같다.
다양한 자료구조를 사용할 수 있도록 생각을 넓혀보자!
2️⃣ 언리얼 C++ 퍼즐플랫폼 게임 제작
💥오늘 마주한 문제들
앞으로는 에러를 따로 모아놓기로 했다!
오늘은 써줘야 하는 모듈이나 UFUNCTION을 안 써서 오류가 발생했다.
물론 강의를 잘 들었으면 발생할 일이 없었겠지만 사람이 어찌 배운 내용을 다 기억하겠는가?
그리고 이렇게 에러를 몸소 체험해보아야 기억에 오래 남는 법
[Trouble Shooting] 기타 오류
🔶 UMG 모듈 안 넣으면 발생하는 에러
yoosorang.tistory.com
[Trouble Shooting] 헤더 오류
🔶 AddDynamic 중단점 명령 실행AddDynamic으로 바인딩할 때 사용하는 함수는 UFUNCTION으로 선언되어있어야 함➡️PlatformInterface의 OnPlatformEndOverlap을 UFUNCTION으로 선언하지 않음
yoosorang.tistory.com
AddDynamic을 찾아보며 델리게이트라는 용어가 가물가물해서 정리해보기로 했다.
🔹추가 공부_델리게이트
공부해보니 게임의 흐름을 특정 액터에게 알릴 때와 같이 굉장히 유용하게 사용될 개념인 것 같다.
Unreal5 델리게이트
🔶 개요델리게이트는 이벤트 기반 프로그래밍을 구현할 수 있도록 해주는 기능으로, 특정 이벤트가 발생했을 때 특정 함수를 실행하도록 바인딩하는 역할을 한다. 델리게이트는 단일, 멀티,
yoosorang.tistory.com