Class 설계 연습(AI Enemy)
·
내배캠/Unreal Engine
문제: 적 AI 시스템 구현 요구사항추상 클래스 설계AEnemyBase라는 추상 클래스를 생성합니다.이 클래스는 다음과 같은 순수 가상 함수(Pure Virtual Functions)를 가집니다:Move(): 적이 이동하는 기능을 정의합니다.Attack(): 적이 기본 공격을 수행하는 기능입니다.TriggerRandomEvent(): 랜덤 이벤트를 실행하는 기능입니다.공격 주기 설정Attack은 적이 플레이어와 일정 거리 안에 있을 때 2초마다 주기적으로 호출됩니다.공격 시 30% 확률로 TriggerRandomEvent가 호출됩니다.플레이어와의 거리 계산적은 플레이어와의 거리를 계산하여 행동을 결정합니다:500 유닛 이하: 공격 루프를 시작합니다.500 유닛 초과: 이동 상태로 전환하고 공격 루프를 중..
Greedy 알고리즘
·
내배캠/C++
Greedy 알고리즘이란? 현재 단계에서 가장 최선이라고 생각되는 선택을 반복적으로 수행하여 문제를 해결하는 방법이다.국소적으로 최적의 선택을 하면, 그것이 곧 전체적으로도 최적의 해가 된다는 가정하에 동작한다.특정 문제에서 간단하면서도 빠르게 최적의 해를 구할 수 있지만, 모든 문제에서는 아니다. 따라서 문제가 Greedy로 접근하기에 적합한지를 분석하는 것이 중요하다.   Greedy 알고리즘의 특징 1. 국소 최적화:매 순간 가장 좋은 선택을 하여 최적의 해를 보장한다.과거의 선택은 고려하지 않으며, 미래를 예측하지도 않는다.현재의 선택이 미래의 선택에 영향을 주지 않는다.미래를 예측하지 않는 점 때문에 모든 문제에서 최적의 해를 보장할 수 없다. 이유는 아래에서 설명하겠다.2. 단계적 해결:문제를..
덧칠하기
·
공부/Code Cata
vector 'wall' 를 만들어서 색칠해야 하는 부분은 1로, 색칠하지 않아도 되는 부분은 0으로 만든 후 2중 for문을 통해 몇 번 칠해야하는지를 구하는 방식으로 문제를 풀었다.그런데 루프를 한 번만 사용해서 해결한 풀이를 확인했고 참고해서 다시 풀어보았고 이는 p.s 중 greedy 에 해당하는 접근 방식으로 보여진다.예전에 C++강의를 들으면서 동전 거스름돈 문제를 예시로 greedy를 스쳐가듯 배웠었는데, 잘 기억이 나지 않아 문제 해결 방식을 설계할 때 떠오르지 않았던 것 같다. greedy 알고리즘에 대한 추가적인 정리https://dong-grae.tistory.com/103 Greedy 알고리즘Greedy 알고리즘이란? 현재 단계에서 가장 최선이라고 생각되는 선택을 반복적으로 수행하여..
소수가 되는 경우 카운팅 (재귀호출)
·
공부/Code Cata
문제를 보는 순간 모든 경우를 다 계산해봐야된다고 생각해서 재귀호출로 해결하고자 했다.근데 초기 작성 코드에서 결과 값이 기댓 값 보다 많이 커서 원하지 않는 중복이 발생했다고 생각했다.이를 해결하기 위해 고민하다가, 시작 인덱스를 매개변수로 추가적으로 전달해서 현재 인덱스보다 큰 인덱스를 탐색하도록 했다.  *초기 작성 코드 (오류 있음)더보기#include #include #include using namespace std;int Check_PrimeNum(int sum){ for (int i = 2; i & nums, vector& used, int& result, int sum, int count){ if (count == 3) { result += Check_Prim..
모의고사 / 완전 탐색
·
공부/Code Cata
3명의 패턴이 달라서 크기가 다르기 때문에 각 사람마다 인덱스를 어떻게 접근해야할지 고민이 되었다.그래서 3명의 정답 개수를 세는 함수를 만들어서 한 사람마다 이 함수를 호출해 정답의 개수를 도출하게끔 설게하였다. 그런데 다른 사람의 풀이를 보던 중 나머지 연산자를 활용해서 쉽게 사람 패턴 인덱스와 정답의 인덱스를 매치 시키는 것을 보고 그 방법을 활용해서 다시 풀어보았다. *초기 코드더보기#include #include #include using namespace std;int correct_answer(const vector& answers, const vector& p){ int count = 0; int p_size = p.size(); int t = 0; for (int i..
25.01.07 (화)
·
내배캠/TIL
링크드리스트 클래스로 구현수업 중에 링크드리스트가 나와서 코드를 보는데 헷갈리는 부분들이 있어서 오랜만에 다시 클래스로 구현해보며 상기시켰다. 그중에 friend class 는 처음 접하는 부분이라 그에 대한 내용도 정리하였다.https://dong-grae.tistory.com/96Data = Value; this->Next = nullptr; } friend class LinkedList; // LinkedList가 private, protected 멤버에 접근 허용};// 링크드리스트 클래스 " data-og-host="dong-grae.tistory.com" data-og-source-url="https://dong-grae.tistory.com/96" data-og-url="https://don..