TIL

2025.01.09

iiblueblue 2025. 1. 9. 11:16

Code KATA

오늘치의 알고리즘 코드카타를 풀이하고 정리하였다

https://iiblueblue.tistory.com/147

 

[2025.01.09] 최대공약수와 최소공배수

문제 설명두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두

iiblueblue.tistory.com

최대공약수, 최소공배수라는 단어를 너무 오랜만에 들어가서 어렸을 때 계산을 어떻게 했었나 찾아봤다. 손으로 계산했던 것처럼 그 방법을 그대로 구현하였는데 잘 되어서 다행이었다.

 

 

C++

오늘은 템플릿에 대해서 정리하였다.
https://iiblueblue.tistory.com/142

 

템플릿(Template)

⊙ 템플릿의 용도에 대해 이해한다. ⊙ 함수 템플릿과 클래스 템플릿의 사용 방법을 안다. 템플릿(Template)템플릿은 일반화된 프로그래밍(generic programming)을 가능하게 하는 기능이다. 간단히 말해

iiblueblue.tistory.com

 

 

 

Quest

  • [5번 과제] Unreal Engine 활용 프로그램 제작

오늘 과제 해설 영상을 보면서 내 코드와 어떤 부분이 다른지 확인해보았다.

UPROPERTY, UFUNCTION

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "hello.generated.h"

UCLASS()
class MYPROJECT2_API Ahello : public AActor
{
	GENERATED_BODY()

private:
	FVector2D start;
	int32 evCnt;
	int toDist;
	
public:	
	// Sets default values for this actor's properties
	Ahello();

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;
	float distance(FVector2D first, FVector2D second);
	void move();
	int32_t step();
	int32 createEvent();
};

나는 모든 변수와 함수에 UPROPERTY, UFUNCTION을 적어주지 않았는데 해설 강의에서는 등장하여 찾아보았다.

 

둘안 각각 언리얼 리플렉션 시스템과 메타데이터 시스템을 활용하기 위한 매크로이다. 이 매크로들을 사용하면 언리얼 엔진 에디터, 디비지 컬렉션, 네트워크 복제, 그리고 블루프린트와의 상호작용  등 다양한 기능을 구현할 수 있다.

 

오늘 풀이에서 필수는 아니라고 했지만 사용하면 좋을 것 같다.

 

이벤트 발생 함수(createEvent)

이벤트 발생 함수응 createEvent가 나와는 다르게 구현되어 있어서 확인해봤다.

int32 Ahello::createEvent()
{
	int32 randomValue = FMath::RandRange(1, 100);
	return randomValue;
}

....

void Ahello::BeginPlay()
{
	...
	for (int i = 0; i < 10; i++)
	{
		...
		if (createEvent() <= 50)
		{
			UE_LOG(LogTemp, Warning, TEXT("Event Trigger!!!!"));
			evCnt++;
		}
		else
		{
			UE_LOG(LogTemp, Warning, TEXT("Event Not Trigger."));
		}
	}
    ...
}

내가 만든 함수는 랜덤 값을 반환하도록 되어 있다. 그리고 랜덤에 대한 이벤트 처리는 BeginPlay에서 하고 있다.

해설에서 본 코드는 달랐다. 반환값이 int32라서 어떤 값을 반환해야하는 건지 잘 모르겠었는데 알고보니 이벤트가 발생하면 1을 아니면 0을 반환하는 구조였다. 그렇게 반환받은 값을 evCnt에 더해주어 이벤트 횟수를 세는 것이었다. 

 

반환값을 int32로 맞추려다가 생긴 문제이긴 했으나 이벤트 발생 함수라는 이름에 맞게 이벤트 발생에 관련된 내용은 함수 안으로 들어가야 했던게 맞다고 생각한다.

'TIL' 카테고리의 다른 글

2025.01.14(화)  (0) 2025.01.14
2025.01.10  (0) 2025.01.10
2025.01.08  (1) 2025.01.08
2025.01.07  (0) 2025.01.07
2025.01.06  (0) 2025.01.06