전체 글
-
[코딩테스트] 소수구하기코딩테스트 2025. 6. 14. 23:55
매일매일 코딩테스트오늘의 잔디채우기는프로그래머스 Lv.1 - 소수 찾기문제 설명자연수 n이 주어졌을 때,1부터 n 사이에 존재하는 소수의 개수를 구하는 함수를 작성하세요.소수란?1과 자기 자신으로만 나누어지는 수(※ 1은 소수가 아님)입력 조건2 ≤ n ≤ 1,000,000풀이 (C++)풀이 노트에라토스테네스의 체#include #include #include #include using namespace std;int solution(int n) { vector prime; for(int i = 2; i
-
[UE5] 워프(Warp) 시스템Unreal 2025. 6. 14. 23:53
마우스 커서 위치로 플레이어를 이동하는 부분에서 마우스의 위치는 2D인데 3D의 공간에서 플레이어를 이동시키는 부분에 대하여 공부를 한 과정을 포스팅 하려한다.3D 공간 개념 – 프러스텀(Frustum)과 마우스 히트시스템 개요마우스 커서 위치를 기반으로 캐릭터를 워프(순간이동)시키는 시스템커서가 가리키는 3D 공간 위치를 데칼(Decal)로 시각화클릭 시 해당 위치로 캐릭터가 순간이동하며, 회전도 자동 조정됨플레이어 컨트롤을 저장한 이유 마우스의 실시간 위치 구현 내용 커서의 위치 구현 내용 커서의 위치로 이동 구현 내용 워프(Warp) 시스템을 진행하면서 발생 가능한 버그와 해결 방법 1. Z축이 낮아서 땅 밑으로 끼는 버그 원인MoveToLocation.Z가 지면 높이로만 설정되어,캐릭터의 충돌체 ..
-
[코딩테스트] 덧칠하기코딩테스트 2025. 6. 14. 03:12
매일매일 코딩테스트오늘의 잔디채우기는 LV.1의 덧칠하기https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 : 이미 칠해진 구간을 건너뛰고 answer를 증가시키는 타이밍을 어떻게 잡아야 할지 몰라 막혔다.특히, i++처럼 한 칸씩 이동하면 중복 계산이 생기는데,얼마나 건너뛰어야 하는지를 계산해서 불필요한 연산을 줄이는 구조가 떠오르지 않았다. 해결 : paintedUntil: 지금까지 롤러로 칠해진 마지막 위치section[i] > paintedUntil: 아직 칠하지 못한 구간이면 롤러 사용 #..
-
-
[UE5] 적 피격 시스템Unreal 2025. 6. 13. 11:26
피격 처리 시스템 : HealthComponent언리얼 프로젝트에서 플레이어와 적 모두 UCHealthPointComponent를 통해 체력(Health)을 관리이 컴포넌트는 `UActorComponent`를 상속받아, 별도의 액터 로직과 분리된 공통 체력 처리 로직을 제공FActionDamageEvent : 기존 FDamageEvent 외의 추가 정보(FHitData*)도 함께 넘기고 싶기 때문에 생성적 피격 시스템 전체 흐름 공격자가 무기를 휘두르며 Overlap 이벤트 발생무기 액터의 Attachment에서 충돌한 대상(InOther)을 DoAction(행동) 클래스에게 전달DoAction은 피격 대상에게 FHitData 기반의 데미지를 전송 (TakeDamage)피격자는 TakeDamage()를..
-
[코딩테스트] 과일장수카테고리 없음 2025. 6. 12. 22:42
매일매일 코딩테스트오늘의 잔디채우기는 LV.1의 과일장수https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 : 오름차순으로 정렬해결 : 내림차순으로 정렬핵심은 점수가 높은 사과부터 최대한 먼저 상자를 만들어야 최대 이익임#include #include using namespace std;int solution(int k, int m, vector score) { int answer = 0; // 1. 점수를 내림차순 정렬 sort(score.begin(), score.end(), ..
-
[UE5] 무기 관리Unreal 2025. 6. 12. 02:06
이번 포스팅에서는 제가 진행 중인 프로젝트의 무기 관리 시스템 구현 과정을 정리해보려 한다.본격적인 구현 설명에 앞서,이 과정을 통해 새롭게 알게 된 개념을 정리한 후 진행 과정을 작성하였다. 장착, 해제, 공격(DoAction) 등 각 기능들을 독립적인 클래스로 나누면서 구조가 점점 복잡해졌다.이 과정에서 자연스럽게 UObject 기반 로직 클래스들을 사용하게 되었고,UCEquipment, UCDoAction처럼 월드에 직접 배치되지 않지만 무기의 상태와 행동을 제어하는 핵심 로직들은 UObject로 구성하게 되었다.언리얼에서는 이러한 UObject 기반 클래스들을 생성할 때 NewObject()를 사용해야 하며,이렇게 생성된 객체들은 언리얼의 GC (Garbage Collector) 에 자동으로 관리..
-
[코딩테스트] 폰켓몬코딩테스트 2025. 6. 11. 23:27
매일매일 코딩테스트오늘의 잔디채우기는 프로그래머스 Lv1. 폰켓몬 https://school.programmers.co.kr/learn/courses/30/lessons/1845 문제 : 중복 제거를 가장 빠르게 하는 방법이 뭔지 몰랐음해결 : unordered_set을 활용하여 벡터를 그대로 집어넣는 방법을 사용했음 set과 unordered_set의 차이정렬이 필요 없을 땐 unordered_set이 훨씬 빠르다는 점도 새로 알게 됨나의 풀이#include #include using namespace std;int solution(vector nums){ int answer = 0; unordered_set s; //nums에서 n/2를 골라야 하며, 다른 종류의 개수를 리턴 i..