1️⃣ 알고리즘 코드카타
https://school.programmers.co.kr/learn/courses/30/lessons/161989#
[ 덧칠하기 ]
🤖 AI 피드백
1. 불필요한 반복
모든 위치를 하나씩 검사하여 덧칠이 필요 없는 구간도 불필요하게 확인
2. section의 특성 활용X
section을 활용해 불필요한 반복 줄일 수 있음
3. 가독성
플래그(check)와 길이(length)를 사용해 상태 관리하여 복잡
4. 개선 코드
#include <vector>
using namespace std;
int solution(int n, int m, vector<int> section) {
int answer = 0;
int lastPainted = 0; // 마지막으로 페인트칠한 위치
for (int pos : section) {
// 현재 위치가 마지막 페인트 범위를 벗어나면 새로 페인트칠
if (pos > lastPainted) {
lastPainted = pos + m - 1; // 롤러로 덧칠 가능한 범위 갱신
++answer; // 롤러 사용 횟수 증가
}
}
return answer;
}
💭 회고
우왁우왁 풀었다!!!
와 근데 테스트 케이스 반례 떠올리기가 진짜 힘들었다.
너무 범위 반복에만 집중했나
주어진 입력을 더 효율적으로 활용할 방안을 생각했어야 했는데..
그리고 난 엄청 복잡하게 풀었는데 ai 풀이 보니까 허망 그 자체..허허
그래..이런 풀이도 있군아..
2️⃣ C++와 Unreal Engine으로 3D 게임 개발
🔹지형이 달라졌을 때 캐릭터의 발 위치 조정
🔹애니메이션 블루프린트에서 애니메이션을 위한 변수 설정
🔹아이템 구현 계층
🔹 C++타이머 함수
void AMineItem::ActivateItem(AActor* Activator)
{
//게임 월드-> 타이머 매니저(타이머 핸들러 관리)
//타이머 핸들러
GetWorld()->GetTimerManager().SetTimer(
ExplosionTimerHandle,
this, //해당 객체에 타이머를 달아줌
&AMineItem::Explode,
ExplosionDelay,
false //타이머가 반복될지 아닐지
);
}
💥문제
▪️ 상황
UFUCTION을 사용하려니까 쓴 적도 없는 final을 선언할 수 없다는 에러 발생
▪️ 해결
위에 public 적어주니 해결
3️⃣ 추가 공부
🔹UPROPERTY와 UFUNCTION
▪️ UPROPERTY()
- private/protected: 캡슐화
- public: BlueprintReadWrite 또는 EditAnywhere 속성일 경우(블루프린트 노출 필요할 경우)
▪️UFUNCTION()
- private/protected: 게임플레이 로직에서만 호출되거나 상속 관계에서만 접근할 경우
- public: BlueprintCallable, BlueprintImplementableEvent 속성일 경우
🔹추가 meta 팁
▪️ AllowPrivateAccess
private 또는 protected에 선언된 UPROPERTY를
블루프린트 또는 디테일 패널에서 사용 가능하도록 허용
private:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats", meta = (AllowPrivateAccess = "true"))
float Health;
▪️ExposeOnSpawn
변수를 스폰 시점에서 초기화 가능하도록 설정
(주로 객체가 생성될 때 값을 설정해야 할 때 사용)
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats", meta = (ExposeOnSpawn = "true"))
float Mana;
💭회고
지금까지 클래스를 필요한대로 만들었는데
오늘 강의에서는 아이템에 대해서 쳬계적인 계층으로 제작하는 것을 배울 수 있었다.
확장성을 고려하여 미리 변수나 함수를 제작하는 과정이 중요하다는 것을 엿볼 수 있었다.
나중에 텍스트 RPG 때 만들어본 인벤토리도 함께 만들어보면 좋을 것 같다!
'TIL' 카테고리의 다른 글
[250124 TIL] 언리얼5 캐릭터 무브먼트 없이 폰으로 플레이어 만들기 (0) | 2025.01.24 |
---|---|
[250123 TIL] 코드카타 에라토스테네스의 체 | 언리얼 C++ 게임 루프 설계 (0) | 2025.01.23 |
[2501121 TIL] 언리얼 C++ 입력 구현 (0) | 2025.01.21 |
[2501120 TIL] 언리얼 C++ 공부 시작 (0) | 2025.01.20 |
[250117 TIL] Emoji RPG 팀플 성공적으로 완료! (0) | 2025.01.17 |