TIL
[250130 TIL] SetTimer에 사용할 함수의 반환형은 void여야 함
yoosorang
2025. 1. 30. 21:14
1️⃣ 알고리즘 코드카타
https://school.programmers.co.kr/learn/courses/30/lessons/160586#
[ 대충 만든 자판 ]
🤖 AI 피드백
1. 원소 for문이 아닌 인덱스 for문 사용하면 코드 가독성을 높일 수 있음
2. ||를 사용하여 여러 상황에 대해 코드 실행 가능
3. string을 매개변수로 받을 경우 const &를 활용
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
vector<int> solution(vector<string> keymap, vector<string> targets) {
vector<int> answer;
unordered_map<char, int> minKeyPress;
// 각 문자별 최소 키 입력 횟수 저장
for (const string& key : keymap) {
for (int i = 0; i < key.size(); ++i) {
if (minKeyPress.find(key[i]) == minKeyPress.end() || minKeyPress[key[i]] > i + 1) {
minKeyPress[key[i]] = i + 1;
}
}
}
// 타겟 문자열에 대한 최소 키 입력 횟수 계산
for (const string& target : targets) {
int pushCount = 0;
for (char c : target) {
if (minKeyPress.find(c) == minKeyPress.end()) {
pushCount = -1;
break;
}
pushCount += minKeyPress[c];
}
answer.push_back(pushCount);
}
return answer;
}
2️⃣ 언리얼 C++ 공부
🔹전방선언
#include 밑에 전방선언을 적을 수 있지만 클래스 선언 앞에 적어줘도 됨
protected:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
class UBoxComponent* SpawnVolume; //앞에 class 붙이면 전방선언이구나!
🔹절댓값 함수
FMath::Abs()
if(FMath::Abs(GetOwner()->GetActorLocation().Y-StartLocation.Y) > MaxRange)
MoveSpeed *= -1;
GetOwner()->AddActorWorldOffset(FVector(0, MoveSpeed, 0)*DeltaTime);
💥마주친 문제 : 구조체
▪️상황
struct를 작성한 cpp와 h에 문제가 될 부분이 없는데 구조체에 관한 에러 발생
▪️해결
구조체를 사용할 때 전방선언을 class로 해서 struct로 바꿔줌
💥마주친 문제 : SetTimer
▪️ 상황
SetTimer 함수시그니처대로 매개변수를 적어주었는데 에러 발생
▪️ 해결
SetTimer에서 사용 가능한 함수 포인터의 반환형은 void여야 함
💭회고
오늘도 여러 에러와 마주하였다.
하지만 콜리전 관련한 문제는 아직 해결하지 못했다.
일단 부모의 콜리전을 자식의 콜리전도 영향을 받는 것 같은데
block을 했는데도 block이 안 먹히니까 미칠 노릇이다..
해볼 수 있는데까지 해보다가 내일 튜터님께 여쭤봐야겠다🥲