분류 전체보기

    [UE5] 카메라달기, 우클릭시 이동-회전 구현

    [UE5] 카메라달기, 우클릭시 이동-회전 구현

    1. 입력 매핑1. 인풋데이터에 변수추가TObjectPtr RightClickThenMoveThere; 2. 인풋액션 추가 3. IMC에 매핑, (구현) 2. Character.cpp 카메라 달아주기bp에서 했던 과정을 코드로 써준다고 생각하면 쉽다.BP의 +Add버튼이 cpp 에서는 : CreateDefaultSubobject(TEXT(변수명)) 임을 기억하자.class USpringArmComponent;class UCameraComponent;UENUM(BlueprintType)enum EViewMode{@@ -31,6 +34,15 @@ class AURA_API ARangerCharacter : public AAuraCharacterBase // Called when the game starts ..

    [UE5] 향상된 입력 사용방법

    [UE5] 향상된 입력 사용방법

    1.data asset상속받고, 입력데이터를 만든다.여기 입력들 목록을 저장할것임.ex) 이동, 공격, 스킬1, 스킬 2 ...// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Engine/DataAsset.h"#include "AuraInputConfigData.generated.h"class UInputAction;/** * */UCLASS()class AURA_API UAuraInputConfigData : public UDataAsset{ GENERATED_BODY()public: UPROPERTY(EditDefaultsOnl..

    [UE5] 리플렉션 시스템

    [UE5] 리플렉션 시스템

    1. obj.cpp// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "UObject/NoExportTypes.h"#include "AuraObject.generated.h"/** * */UCLASS()class AURA_API UAuraObject : public UObject{ GENERATED_BODY()public: UAuraObject(); UFUNCTION() void HelloUnreal(); const FString& GetObjectName() const { return Name;}protected: UPROPERTY()..

    리트코드 338. Counting Bits c++ // 1의갯수세기, dp, 비트

    리트코드 338. Counting Bits c++ // 1의갯수세기, dp, 비트

    https://leetcode.com/problems/counting-bits/description/1. 비트 구현 풀이1. 각각 숫자에대해 2진수를 구하면서 1의 갯수를 계산한다.O(n lgn)class Solution {public: vector countBits(int n) { vector ret; for(int i=0;i 2. dp풀이*행동영역 : n이 홀짝일때를 나눠서 규칙을 발견해라!n==0인 기저사례 처리 주의.class Solution {public: vector countBits(int n) { vector dp(n+1,0); if(n==0) return dp; dp[0]=0; dp[1]=1; ..

    리트코드 133 그래프 클론 c++ // 그래프 복사하는방법

    리트코드 133 그래프 클론 c++ // 그래프 복사하는방법

    https://leetcode.com/problems/clone-graph/description/ 1. 의사코드1. map에 를 담는다.2. 엣지케이스 : 원래널인경우 return nullroot에 이웃이없는경우, 그거 new로 생성해서 리턴3. dfs초기화 : cur(원본)배열의 값으로 노드를 만들어주고, 이웃만 채워주면 된다!!이웃에대해, 이미 클론되었다면(맵에 존재한다면 == 유사 visited) 이웃에 담아준다.아니라면, 거기로 들어간다.4. 아래그림에서 1에서 시작하는 dfs를 돌려보면 이해가 될것이다.class Solution {public: Node* dfs(Node* cur, unordered_map& mp) { vector neighbour; Node* c..

    리트코드 322 코인변경 c++ // 동전dp복습, 리트코드 초기화주의

    리트코드 322 코인변경 c++ // 동전dp복습, 리트코드 초기화주의

    https://leetcode.com/problems/coin-change/description/1. 리트코드 초기화주의리트코드는 아래 함수를 모든tc에 대해 재실행하는듯하다.따라서 이전 dp값을 그대로 사용해버린다.-> 함수내에서 초기화 해주면 된다.int dp[10000+4]; //dp [i][j] : i원을 달성하는 최소 동전갯수, j번째 동전추가시class Solution {public: int coinChange(vector& coins, int amount) { // memset(dp,0,sizeof(dp)); //리트코드는 전역변수 재사용하기땜에 초기화해줘야하는듯?!! 2. 동전dp복습1. 최솟값 구하기는 dp를 최대값으로 초기화해야 후에 min()함수를 쓰기 쉬워진다!!!..

    리트코드 70 계단오르기 c++ // 재귀함수 리턴값 전파 이해, dp

    리트코드 70 계단오르기 c++ // 재귀함수 리턴값 전파 이해, dp

    https://leetcode.com/problems/climbing-stairs/1. 전체코드int dp[45+4];int N;class Solution {public: //해당 층에 올랐을때, 그때 경우의수 int go(int cur){ //coutN){ return 0; } if(cur==N){ return 1; } if(dp[cur]!=-1) return dp[cur]; dp[cur]=0; dp[cur]+=go(cur+1); dp[cur]+=go(cur+2); return dp[cur]; } int climbStairs(int..

    리트코드 211 c++ // 트라이 와일드카드 종결, 재귀vs길이별 트라이

    리트코드 211 c++ // 트라이 와일드카드 종결, 재귀vs길이별 트라이

    https://leetcode.com/problems/design-add-and-search-words-data-structure/description/?source=submission-noac1. 와일드카드가 처음, 중간, 끝에 있는경우 모두 커버하는 코드1. 삽입부분은 기존과 동일하다.2. 검색에서 재귀함수를 써야한다.bool search(const string& word, int index) const { //끝에const => 이함수에서는 클래스내부 변수 수정금지 if (index == word.size()) { //문자끝에 온경우 return isEnd; } char c = word[index]; ..