[TIL] 2025-04-15 알고리즘 문제, 대난투 프로젝트, 정렬
2025-04-15 TIL
알고리즘 문제
문제를 이해하는 것은 쉬웠고, 분석에도 크게 어려움을 느끼지는 않았습니다.
하지만 알고리즘을 어떻게 구현해야하는지에 대해서 어렵게 느껴졌고, 이 부분에서 시간이 오래 걸렸습니다.
결국 직접 방법을 찾지 못했고, 어떻게 구현해야하는지 아이디어를 살펴보아서 풀이해보았습니다.
다른 사람들이 어떻게 구현했는지를 살펴보았기 때문에 좀 더 신경써서 학습했고, 최적화를 시도해보거나 리팩토링을 시도해보았습니다.
문제를 분석하는 것과 알고리즘을 구현하는 것에 있어서 좋은 학습이 되었고, 해당 문제를 풀어보면서 실력이 향상되었다고 생각합니다.
[프로그래머스][C++] 시소 짝꿍
문제를 이해하는 것 자체는 어렵지 않았는데, 어떤 알고리즘으로 문제를 풀이해낼지 생각해내는건 굉장히 어렵게 느껴졌습니다.
아이디어 자체는 처음 접해보는 방법이었지만, 구현해야하는 알고리즘은 어렵지 않았습니다.
문제를 잘 이해하고 분석해서 응용하는 능력을 키운다면 부족했던 부분을 보완할 수 있을 것 같습니다.
[백준][C++] 5052번 전화번호 목록
대난투 프로젝트
오늘은 메인메뉴 UI를 클릭했을 때 캐릭터 선택창으로 이동되고, 캐릭터가 선택되면 플레이어 컨트롤러에서 구현한 RPC함수를 통해 변수들을 관리해주어 맵 선택까지 되도록 구현했습니다.
구조나 서버와 클라이언트 개념으로 인해 시간은 좀 걸린 것 같습니다.
템플릿 프로젝트를 멀티로 구현하면서 RPC함수들을 사용하고, UI 상호작용을 위해 RPC함수를 사용하다보니 RPC함수에 대해서 어느정도 이해하고 적응한 것 같습니다.
확실히 프로젝트를 함에 있어서 성장하고 있다는 것이 체감되고 있습니다.
정렬
언리얼 엔진의 자료구조로 다양한 정렬을 구현해보는 강의를 수강했습니다.
버블, 삽입, 선택, 퀵, 병합 등의 정렬을 학습했고, 구현에 대한 예시를 들었습니다.
전에 학습했던 내용들인데 언리얼 엔진의 자료구조로 정렬하는 것을 보니 이미 알던 알고리즘인데 새로운 느낌이 들었습니다.
전에 학습했던 적 있다보니 학습에 대한 난이도는 높지 않았고, 이해하기 쉬웠습니다.
강의에서 새롭게 알게된 점 도 있었는데, 언리얼 엔진에서 TArray::Sort()
는 퀵소트가 아니고 퀵소트를 기반한 인트로소트를 사용한다는 점을 새롭게 배웠습니다.
인트로소트는 사용하는 것은 재귀 깊이를 제한하기 위해서 그렇다고 합니다.
퀵소트 기반으로 최초 정렬을 하고, 재귀 깊이가 일정 수준을 초과하면 성능 저하 방지를 위해 힙소트로 전환된다고 합니다.
언리얼 엔진에서 직접 정렬을 구현해보는 것은 대난투 프로젝트를 작업하는 것이 우선이라고 생각되기 때문에 나중에 글로 정리해보도록 하겠습니다.
댓글남기기