Make Unreal REAL.
article thumbnail
Level 2. 문자열 압축

Level 2. 문자열 압축 압축할 수 있는 모든 경우의 수를 찾아 실제 압축을 진행해 해결했다. 문자열의 길이가 4라면, 3개 단위부터는 압축이 불가능하므로 확인하지 않아도 된다. 벡터에 n 길이로 잘린 문자열들을 담은 후, 앞에서부터 동일한 문자열의 개수를 찾아 압축 문자열에 추가한다. 마지막 문자열 처리를 위해 쓰레기 값인 "0"을 추가해줬다. #include #include #include #include using namespace std; string compress(string& s, int n) { vector v; for (int pos = 0; pos < s.length(); pos += n) v.emplace_back(s.substr(pos, n)); v.emplace_back("0"..

article thumbnail
Level 2. 124 나라의 숫자

Level 2. 124 나라의 숫자 십집수와 비교하며 패턴을 찾으면 된다. 124 나라에서는 십집수를 3으로 나눈 나머지가 0일 때 4, 4일 때 1, 2일 때 2가 된다. 124 나라에서 n자릿수로 바뀌는 십집수를 f(n)이라고 할 때, f(0) = 0 f(n) = 3ⁿ⁻¹ + f(n - 1) #include #include using namespace std; string solution(int n) { string answer; while (n) { int mod = n % 3; (n /= 3) -= (mod == 0); answer += "412"[mod]; } reverse(answer.begin(), answer.end()); return answer; }

article thumbnail
Level 2. 가장 큰 정사각형 찾기

Level 2. 가장 큰 정사각형 찾기 모든 점을 확인하며 가장 큰 정사각형을 찾기 때문에, 중복으로 인해 시간 초과가 발생했다. // 이 풀이는 시간 초과가 발생한다. #include #include #include using namespace std; int checkSquare(vector& board, int r, int c) { int n = 0; int R = board.size(), C = board.front().size(); while (r < R && c < C) { for (int i = r - n; i

article thumbnail
Ability System 기본 뼈대 구성
게임 개발/<ARAG> 2023. 6. 15. 18:35

ARAG (A Really Awesome Game) Commit 8b195 이번 작업 결과는 다음과 같다. 체력, 마나, 이동 속도 속성을 GAS를 통해 캐릭터에 적용하고 데이터 에셋을 통해 관리했다. 이번 작업에서 느낀 점 👨‍💻👨‍💻👨‍💻 GAS가 생각보다 쉽지 않다.. 한글로 된 국내 참고 자료는 전무한 수준이라서, 공식 문서나 해외 블로그 유튜브 예제를 보면서 파보아야 할 것 같다. 중요한 설정은 BP에 그대로 두지 말고 틈틈이 C++로 옮겨주는 게 좋다. 이번 작업과 관련된 주요 구현 내용은 다음과 같다. 캐릭터에 기본적으로 적용할 이펙트와 부여할 능력을 데이터 에셋을 통해 관리하도록 한다. 일단 캐릭터는 체력, 마나, 이동 속도 속성을 갖도록 했다. 캐릭터 클래스에 데이터 에셋을 통해 기본 이..

article thumbnail
Level 2. 게임 맵 최단거리

Level 2. 게임 맵 최단거리 처음엔 DFS를 시도해 시간 초과가 발생했다. 내가 왔던 방향이 아닌 방향으로 계속 진행하면서 최소 비용을 갱신하는 방식이다. // 이 풀이는 시간 초과가 발생한다. #include #include #include #include using namespace std; enum class DIR { Up = 1, Down = 2, Left = 4, Right = 8 }; void rDFS(vector& maps, int i, int j, int from, int cost) { int n = maps.size(), m = maps.front().size(); if (i < 0 || n

article thumbnail
Level 0. 간단한 논리 연산

Level 0. 간단한 논리 연산 #include using namespace std; bool solution(bool x1, bool x2, bool x3, bool x4) { return (x1 | x2) & (x3 | x4); }

검색 태그