Til 20

김정환·2025년 2월 27일

1️⃣ 코테

어제 백트랙킹을 대략적으로 연습했고 문제를 바로 풀어보았다.

전력망 둘로 나누기

  • 풀이 코드
  • 풀이 과정
    • 트리 형태로 구성된 전력망의 하나의 연결을 끊어서 전력망을 두개로 나눈다.
      이때 나눠진 두 전력망의 송전탑의 갯수가 가장 비슷하게 나눴을 때 차이값을 출력한다.
    • 사실 이 문제에서는 백트래킹을 썼다기보다는 완전탐색 + DFS를 적용해서 풀었다.
      • 송전탑 연결을 나누는 경우에서 조건을 검사해서 경우의 수를 거르는 별도의 작업이 없었다.
      • 이렇게 해도 시간초과가 나지 않았기에 문제를 풀 때 그 부분은 염두에 두지 않았다.
    • 풀이는 모든 송전탑 연결에 대한 그래프를 구성한다.
    • 그 다음 송전탑 연결 배열을 순회하면서 하나씩 연결을 끊는다.
      • 나눠진 그래프에서 각 노드에 대해 DFS를 진행한다.
      • BFS를 써도 되겠지만, 단절점 찾기와 같이 분리된 그래프 탐색에는 DFS가 유리했기 때문에 이 방법을 썼다.
      • DFS를 해서 각 전력망의 노드 갯수의 차이를 리스트에 넣었다.
    • 탐색이 끝난 후, 리스트의 최솟값을 출력했다.

양궁 대회

  • 풀이 코드
  • 풀이 과정
    • 라이언이 어피치에게 가장 큰 점수 차이로 이기는 경우를 찾아야한다.
    • 몇점을 맞춰야 최적인지 알 수 없으므로 백트래킹을 이용한 완전탐색을 써야한다.
    • 다만... 너무 심플하게 작성했는지 사격 횟수가 높아짐에 따라 시간초과가 나고 있어 다시 풀고 있다.

2️⃣ 개인작업

캐릭터 모델 변경 작업이 끝나서 애니메이션을 반영하기로 했다.

캐릭터 애니메이션 반영

애니메이션은 따로 구매하기 보다는 Mixamo에서 구해서 쓰려고 한다.
각 클래스별로 당장에 필요한 애니메이션 목록은 다음과 같다.

애니메이션 클립 적용

Mixamo에서 최대한 괜찮은 모션을 몇가지 가져와서 프로젝트에 임포트했다.\

캐릭터들에 대해 공통적인 적용이 될 것이라 다음과 같이 애니메이션 컨트롤러를 구성했다.

그리고 AnimatorOverrideController를 캐릭터 규격에 맞게 작성해서 리소스 폴더에 넣어둔다.

모델과 마찬가지로 애니메이션 컨트롤러도 ObjectName으로 받아와 할당해준다.

회고

오늘은 문제풀이나 리소스 탐색에서 생각보다 시간을 많이 썼다.

  • 문제풀이에서는 백트래킹 관련한 다른 문제들을 더 풀어볼 필요가 있을 것 같다.
  • 리소스 탐색에서는 내가 원하는 리소스를 찾는 것이 쉽지않다.
    • 이렇다 싶으면 적용하기 애매한 경우가 많은데 이 문제는 전문적인 애니메이터가 있어야 해결될 것 같다.
    • 그렇지 않으면 애니메이션을 직접 만들던가..
profile
만성피로 개발자

0개의 댓글