Make Unreal REAL.
article thumbnail
Level 2. 마법의 엘리베이터

Level 2. 마법의 엘리베이터 #include #include using namespace std; int solution(int storey) { if (storey < 10) return min(storey, 11 - storey); int left = storey % 10; return min(left + solution(storey / 10), 10 - left + solution(storey / 10 + 1)); }

article thumbnail
Level 2. 배달

Level 2. 배달 처음에 그냥 DFS로 해결하려다가 방문 여부를 관리하면서 최소 비용을 갱신하는 방법이 잘 떠오르지 않아 찾아봤다. 결국은 전형적인 다익스트라 알고리즘 문제였다.. [ 프로그래머스 배달 (Lv2) ] (C++) 프로그래머스의 배달(Lv2) 문제이다. [ 문제풀이 ] 1번마을에서 K시간내에 배달을 갈 수 있는 마을의 갯수를 구해야 하는 문제이다. #1. 구해야 하는 값 1번 마을에서 K시간내에 배달을 갈 수 있는 yabmoons.tistory.com vector를 활용한 인접 리스트로 그래프를 만들었다. 처음에 우선순위 큐에 시작점을 0의 비용으로 넣고, 매번 가장 비용이 적은 정점을 우선순위 큐에서 뽑는다. 뽑은 정점의 인접 정점들의 비용을 갱신한다. 인접 정점의 비용 > 나의 비용 ..

article thumbnail
AI 몬스터 구현, 캐릭터와 몬스터의 구조 및 데이터 관리 방식 변경
게임 개발/<ARAG> 2023. 7. 25. 17:55

ARAG (A Really Awesome Game) Commit b3af3 이번 작업 결과는 다음과 같다. [몬스터] AI 몬스터 구현 몬스터의 속성, 애니메이션을 데이터 에셋으로 관리하도록 작성 [캐릭터] 캐릭터 클래스의 GAS, 데이터 관련 코드를 컴포넌트로 분할 캐릭터의 속성, 애니메이션을 데이터 에셋으로 관리하도록 변경 캐릭터의 피격, 죽음 구현 캐릭터 보행 Blendspace 자연스럽게 수정 [무기] 활 착용 시 화살이 없으면 근접 공격 하도록 수정 활 조준 시 조준선 표시 화살을 앞 방향이 아닌 카메라가 보는 방향으로 쏘도록 수정 활 조준 시 Aim Offset 적용 [버그 수정] 화살집의 화살이 몬스터에게 데미지를 입히던 버그 수정 이번 작업에서 느낀 점 👨‍💻👨‍💻👨‍💻 역시 AI 구현은 ..

article thumbnail
우선순위 큐 사용시 비교기 정의가 기억나지 않을 때

사용자 정의 자료형을 사용해 우선순위 큐를 사용할 때는 보통 아래와 같이 사용한다. 비교기 클래스를 선언하고, 크기를 비교하는 () 연산자를 오버로딩한다. priority_queue 형식으로 선언한다. #include #include using namespace std; struct Job { int start; int duration; }; class compare { public: bool operator () (const Job& A, const Job& B) { return A.duration > B.duration; } }; void main() { priority_queue prQue; prQue.emplace(Job {0, 4}); prQue.emplace(Job {1, 2}); prQue...

article thumbnail
Level 2. 전력망을 둘로 나누기

Level 2. 전력망을 둘로 나누기 2차원 vector를 활용한 인접 리스트로 그래프를 만들었고, 각 연결을 끊고 끊은 두 지점부터 DFS를 수행해 차이를 계산한 최솟값을 구하면 된다. #include #include #include #include using namespace std; int rDFS(vector& tree, int vertex) { int nConnected = 1; for (int j = 1; j < tree.size(); ++j) { if (tree[vertex][j]) { tree[vertex][j] = tree[j][vertex] = false, nConnected += rDFS(tree, j); } } return nConnected; } int calculate(vecto..

article thumbnail
Level 2. 미로 탈출

Level 2. 미로 탈출 최단 거리를 구해야 하는 전형적인 BFS 문제다. 출발지와 목적지의 거리를 구하는 함수를 만들어 재사용하면 편하고, 좌표에 unsigned 형을 사용하면 범위 검사가 간편해진다. #include #include #include using namespace std; struct Point { unsigned x; unsigned y; bool operator == (const Point& p) { return (x == p.x) && (y == p.y); } }; struct Entity { int level; Point point; }; int distance(vector& maps, Point from, Point to) { int X = maps.size(), Y = map..

검색 태그