2026. 2. 11. 21:55ㆍ언리얼 7기 본캠프
코드카타는 이제 재귀함수에 조금씩 적응해나가고 있는데 이제 다양한 변형이 나오기 시작함. 그리고 확실히 로직을 짜는건 좀 되긴 하는데 '엣지 케이스'를 확인하는 능력이 좀 부족해서, 다양한 문제들을 경험하며 다양한 엣지 케이스들을 생각해볼 수 있었으면 좋겠음
//소수 찾기 문제. 처음엔 잘못된 입력 검증을 제대로 하지 않아서 string이 공백인데 stoi를 시도해서 터지기도 했고
//깊이 검증과 입력 검증 위치를 잘못 넣어서 엉망이 되기도 했음
//unordered_set을 사용해서 중복을 거른건 괜찮았던 것 같음
#include <string>
#include <vector>
#include <cmath>
#include <unordered_set>
using namespace std;
bool isprime(int num)
{
if (num <= 1) return false;
for (int i = 2; i <= sqrt(num); i++)
{
if (num % i == 0) return false;
}
return true;
}
void dfs(int depth, string cur, const string& numbers, vector<bool>& isused, unordered_set<int>& primeset)
{
if (cur != "" && isprime(stoi(cur))) primeset.insert(stoi(cur));
if (depth == numbers.length()) return;
for(int i = 0; i < numbers.length(); i++)
{
if (isused[i]) continue;
isused[i] = true;
dfs(depth + 1, cur + numbers[i], numbers, isused, primeset);
isused[i] = false;
}
}
int solution(string numbers) {
int answer = 0;
vector<bool> isused(numbers.length());
unordered_set<int> primeset;
dfs(0, "", numbers, isused, primeset);
answer = primeset.size();
return answer;
}
//쿼드압축 후 개수 세기 문제. 처음엔 무슨 얘긴가 했는데... 읽다보니 그냥 적당한 2차원 배열 + dfs 활용 문제라서
//입출력 예를 계속 참고하며 어떻게 할 지 생각하다가 코드가 잘 완성이 되었음
//범위 내 숫자가 전부 같으면(압축 가능하면) 그대로 한번만 더하고 return하고, 하나라도 다르면 4분면으로 나눠서
//다시 들어가서 압축을 시도하는 방식
#include <string>
#include <vector>
using namespace std;
void recursion(int length, int y, int x, const vector<vector<int>>& arr, vector<int>& answer)
{
int base = arr[y][x];
bool iscompable = true;
for (int i = y; i < y + length; i++)
{
for (int j = x; j < x + length; j++)
{
if (arr[i][j] != base)
{
iscompable = false;
break;
}
}
if (!iscompable) break;
}
if (iscompable)
{
answer[base]++;
return;
}
else
{
int half = length / 2;
recursion(half, y, x, arr, answer);
recursion(half, y + half, x, arr, answer);
recursion(half, y, x + half, arr, answer);
recursion(half, y + half, x + half, arr, answer);
}
}
vector<int> solution(vector<vector<int>> arr) {
vector<int> answer(2, 0);
int length = arr.size();
recursion(length, 0, 0, arr, answer);
return answer;
}
오늘 컨디션이 유독 안좋아서 공부 및 과제를 진행하는데 생각보다 큰 지장이 있었고, 계속 꾸벅꾸벅 졸고 정신못차리고 해서 과제 진도도 많이 못 빼고 특강시간에도 정신을 거의 못차렸음... 점심시간 저녁시간에 식사도 못하고 잠 보충하기만 하고...
정신을 바짝 차려야하는데 수면이란게 한번 제대로 타이밍을 놓치면 제대로 할 수가 없으니 ㅠㅠ 힘든 부분이 있는거같음. 특히 불면증이 좀 있다보니...
결과적으로 오늘은 무기의 재장전 로직 개편 및 즉시 중단할 수 있게(장전중 무기를 바꾼다거나 할 때 등) 개편을 하였고, 무기 발사가 화면 중앙이 아닌 이상한 곳으로 날아간다는걸 깨달아서 카메라 기준으로 LineTrace를 쏴서 도착점을 정한 후 무기의 총구에서 그 도착점까지 발사되는 식으로 무기 발사를 고쳤음. 그리고 디버그용 캐릭터의 카메라를 좀 조정해서 TPS느낌나게 조정해보기도 함
데이터베이스는 작성중인데, 생각하다보면 데이터베이스에 자꾸 열을 추가할게 생겨서 이래저래 뜯어고치느라 진행이 잘 되지 않고 있음. 전체 아이템 데이터를 구하고 무기 구현과 인벤토리 구현을 시작해야 하는데, 남은 시간안에 열심히 해보는걸로...

'언리얼 7기 본캠프' 카테고리의 다른 글
| 260213 TIL - 챕터3 팀프로젝트 7일차 (0) | 2026.02.13 |
|---|---|
| 260212 TIL - 챕터3 팀프로젝트 6일차 (0) | 2026.02.12 |
| 260210 TIL - 챕터3 팀프로젝트 4일차 (0) | 2026.02.10 |
| 260209 TIL - 챕터3 팀프로젝트 3일차 (0) | 2026.02.09 |
| 260206 TIL - 챕터3 팀프로젝트 2일차 (0) | 2026.02.06 |