본문 바로가기

분류 전체보기142

백준 2529 C++ 이 문제도 생각하는 방식은 간단하다.에 둘 다 사용할 수 있도록 재귀함수를 만들어주면 된다.#include using namespace std;bool bIsFindResult = false;int bodingNum;int usedNum[10];vector result;vector vIsFindBigger;void FindResult(int num, int index){ usedNum[num] = 1; if (index == bodingNum && bIsFindResult == false) { //cout = 0; i--) { if (usedNum[i]) continue; result.push_back(i); FindResult(i, index + 1); result.pop_back();.. 2024. 10. 19.
백준 1987 C++ 아이디어는 간단했다.char는 방문처리가 까다로울 것 같아서 int로 바꿨다.그리고 더 나아가지 못하면 거기가 최대일 것이기에 그때만 max를 찾도록 하였다.원래 다른 dfs처럼 방문한 칸에 대한  visited는 필요없는 것이 어차피 visitedAlpha[]가 1이기에 필요없어서 다음과 같이 풀었고 통과했다.//1987#include using namespace std;int r, c, result = 0;int alphaArray[25][25];int visitedAlpha[50];int dy[] = { 0, 1, 0, -1 };int dx[] = { 1, 0 , -1, 0 };void dfs(int y, int x, int count){ visitedAlpha[alphaArray[y][x]] = .. 2024. 10. 18.
Effective C++ 항목 4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자 아마 다들 알겠지만 초기화되지 않는 값을 읽으면 정의되지 않은 동작이 그대로 나온다.공부하고 있는 Unreal의 경우 접근 불가능한 *에 대해 접근하기만 해도 프로그램이 다운된다.대부분은 적당히 무작위 비트의 값을 읽고 객체의 내부가 이상한 값을 갖게 한다. C++에서 객체의 초기화가 중구난방은 아니긴하다. 언제 초기화가 보장되며 언제 그렇지 않은지에 대해서 명확한 규칙이 존재하긴 하다. 하지만 너무 복잡하다. 복잡한 것보다 그럼 간단한게 좋은데 간단한 방법은 당연히모든 객체를 사용하기 전에 초기화하는 것이다. int x = 0; //int 초기화const char* text = "C-Style String"; //포인터 직접 초기화double d;cin >> d; //입력 스트림에서 읽어서 초기화생.. 2024. 10. 10.
Unreal AIController 제작 이번에 BehaviorTree에 쓰일 AIContoroller(AIC)를 직접 제작해보았다. UPawnSensingComponent에서 UAIPerceptionComponent로 변경UPawnSensingComponent: 간단한 AI 감지 시스템에 필요한 경우 사용된다.UAIPerceptionComponent: PawnSensingComponent에서 제공하는 시각, 청각 감지 기능뿐만 아니라 손상 등 다양한 감지 기능을 지원한다.  이렇기에 이후에 더 확장성이 높은 UAIPerceptionComponent로 바꾸었다.AIPerceptionComponent = CreateDefaultSubobject(TEXT("AI Perception"));AIC의 생성자에 다음과 같이 추가했다. OnPossessht.. 2024. 10. 7.