본문 바로가기

TIL

[TIL]2024-1-19 / 20일차 - 벅찬 강의 분량 / 개인과제 시작

 

1. 오늘 푼 알고리즘 코드카타

1-1. 서울에서 김서방 찾기

답 :

using System;
public class Solution {
    public string solution(string[] seoul) {
        string kim = "Kim";
        int index = Array.IndexOf(seoul, kim);
        string answer = $"김서방은 {index}에 있다";
        return answer;
    }
}

IndexOf를 다시 기억하여 풀기 쉬웠다. 중간에 왜 오류가 나는건지 계속 고민했으나 이유가 "김서방은 1에 있다."라고 마침표를 붙혀버렸던 것......

 

 

1-2 나누어 떨어지는 숫자 배열

답 : 

using System;

public class Solution {
    public int[] solution(int[] arr, int divisor) {
        int[] answer = new int[arr.Length];
        int temp = 0;
        
        for(int i = 0; i < arr.Length; i++)
        {
            if(arr[i] % divisor == 0)
            {
                //answer배열에 temp로 i값을 저장하고 다음 index로
                answer[temp] = arr[i];
                temp++;
            }
        }
        if(temp == 0)
        {
            //배열에 -1 담아 반환
            Array.Resize(ref answer, 1); //배열 길이 1로 리사이즈
            answer[0] = -1;
        }
        else
        {
            Array.Resize(ref answer, temp); //0값들을 제거하기 위해 리사이즈
            Array.Sort(answer);
        }
        return answer;
    }
}

생각보다 좀 고민을 해야 했다. Array에 Resize기능이 있다는 것을 알게 된 후, ref를 처음으로 제대로 써서 풀 수 있었다.


 

 

어제까지 구현된 부분, 오늘은 몬스터 추가와 공격 방법까지 구현했다.

 

오늘은 어제 이어 듣던 강의 내용을 계속 듣기로 하였다.

 

오늘 일어난 버그 중 가장 어이없던 것은 TrailRenderer가 아무리 강의 교재를 따라하여도 trail이 사라지지 않고 계속 발사지점 부터 착탄지점까지 쭉 이어지던 문제가 생겼다. 한시간 반 가량을 코드를 대조해보며 계속 고민해보았지만 도저히 답을 알 수 없었고

 

결과적으로 구글링 결과 유니티 자체 버그라고 판단, 2022. 3.2f1 대신 2022.3.xx버전이면 된다고 들어 그 중 가장 최신 버전을 다운 받자 그대로 멀쩡하게 작동하였다. 내 아까운 시간과 노력...

 

 

오늘은 강의에서 보여준 코드를 이용해 개인 과제 구현을 하려고 한다.

 

코드를 처음부터 새로 짜기에는 어려운 부분들이 많기에 과제에서 구현한 방법들을 거의 그대로 응용하였다. 물론 이후 추가 기능을 넣으며 내가 구현해야 하겠지만, 지금은 시간이 너무 촉박하기에 궁여지책을 쓸 수 밖에 없다.

 

 

 

개인 과제 컨셉은 제공받은 리소스에 펭귄을 보고 내일배움캠프에서 스파르타 코딩하는 펭귄이다.

강의 교재에서 따라 만들게 된 공격 코드들이 너무 아까워 키보드 워리어 컨셉으로 무기를 달아주었다.

오늘은 강의 내용을 들으며 많이 피곤했기에 대체로 애니메이션만 구현해보고 정리해야 했다.

 

강의 후반부 내용은 아직 다 듣지 못하여 내일은 집중해서 필수 기능 구현을 마치고 강의를 다시 들도록 해야겠다.

 

 

또한 지금 만들 때는 중간에 사격자세가  들어가게 될 예정이었어서 한 레이어에서 다 처리하고자 했는데 생각보다 원하는 대로 하려면 시간이 오래 걸릴 것 같아 취소되었기에 이 레이어도 더 깔끔하게 공격을 따로 떼내어 정리해야 할 것 같다.