2025-02-26 TIL

알고리즘 문제

H-Index라는 개념이 생소하고, 논문의 인용 횟수와 논문 개수 간의 관계를 알고리즘으로 구현해내는게 헷갈렸습니다.
그래서 답을 보았는데, 핵심 아이디어 자체는 생각보다 간단하다고 느껴졌습니다.
문제를 좀 더 다양하게 접해보고 푸는 경험을 늘려서 논리적으로 수식을 만들어내는 경험을 키워내야할 것 같다고 느꼈습니다.
프로그래머스 H-Index

스파르타 내배캠

스파르타 내배캠에서 팀프로젝트에서 제가 오늘 작업한 내용은 다음과 같습니다.

모든 캐릭터의 부모 클래스에서 TakeDamage함수를 구현해서 기본적인 데미지 처리를 구현했습니다.
해당 함수에서 캐릭터의 체력이 0이 되었을 경우 OnDeath함수를 호출하도록 했습니다.

사망 시 필요한 함수를 델리게이트를 사용해서 바인딩 할 수 있도록 구현했습니다.
델리게이트는 여러가지 함수가 바인딩 되어야 하므로, DECLARE_DYNAMIC_MULTICAST_DELEGATE를 사용했습니다.
이 델리게이트를 사용한 이유는 캐릭터가 사망시 다른 클래스의 함수를 직접 호출하지 않게 해서 클래스 간 의존성을 줄이기 위함입니다.

현재 OnDeath함수에서는 바인딩 된 함수를 호출하도록 구현 했습니다.
바인딩 될 수 있는 함수로는 현재 AI를 스폰했을 때, 리스폰을 담당하는 함수와 처치 처리를 담당하는 함수가 있습니다.
리스폰은 기존에 AI를 스폰 시키는 함수를 수정해서 델리게이트에 바인딩해서 사용할 수 있도록했습니다.
처치 처리를 담당하는 함수의 경우에는 어떤 기능을 넣게될지 정하지 못해서 내부 코드를 구현하지 않았습니다.

캐릭터가 Destroy()되는 시점을 정하지 않아서 아직 사용하지 않았는데, 조만간 이 시점을 결정해서 OnDeath함수나 몽타주를 재생한 후에 특정 함수를 실행해서 Destroy함수를 호출하도록 할 것 같습니다.

AI의 스폰을 담당하는 스폰 매니저 클래스를 만들어서 스폰을 따로 관리하는 방향에 대한 이야기를 들었지만, 결과적으로는 스폰 매니저 클래스는 구현하지 않도록 했습니다.
그 이유는 해당 프로젝트의 스폰 기능이 크지 않은 점과 팀원들의 구현 속도가 느리기 때문에, 제가 최대한 많은 기능들을 구현해야 할 것 같아서 기존 코드를 리팩토링 하는 것은 후순위로 미루고자해서 이렇게 결정했습니다.

AI가 스플라인을 통해 이동하는 것을 AI담당하는 조원 한명이 구현해냈는데, 기존 기획에 없던 기능이라 급하게 구현해 살짝 SOLID에 벗어나게 된 것 같습니다.
SOLID에 적합하도록 구현할 수 있을 것 같지만 생각을 오래하기에는 시간이 촉박하다고 느껴져서 우선 지금 구현된 방법을 사용할 것 같습니다.


이외에도 오늘은 정렬과 관련된 알고리즘 문제들을 풀어보는 시간이 있었습니다.
오늘 풀어본 문제들 중 오버 플로우를 체크하지 못해서 틀린게 있었어서, 학습이 된 시간 같고 복습도 해볼 수 있었던 시간이어서 좋았습니다.
[기타 문제 C++] 정렬 문제

Date:     Updated:

카테고리:

태그:

TIL 카테고리 내 다른 글 보러가기

댓글남기기