관리 메뉴

STIKA-DEV

Unity 캠프 14일차 TIL < 알고리즘 / 팀 프로젝트 1-1 > 본문

프로그래밍/Unity + C#

Unity 캠프 14일차 TIL < 알고리즘 / 팀 프로젝트 1-1 >

STIKA 2024. 1. 11. 16:25

24.01.11 Thu

 

❤️ TIL

Today I Learned

❤️하루에 1%씩만 나아가도 4개월 동안 쌓이면 꽤 덩치가 커진답니다 :)


📌 오늘의 계획

  • Linked List ~ 알고리즘 강의 2일차
  • 알고리즘 코드카타
  • 팀 프로젝트 진행상황

✏️ 작업 내용

Console.Error.WriteLine("error");

에러 표시

 

✔️ 알고리즘

다른언어

Linked List == List

C#

List가 배열로 만들어짐

 

 

 

Linked List

List<T> list = new List<T>();

LinkedList<string> list = new LinkedList<string>();
  • 동적으로 크기를 조절할 수 있는 배열
  • 할당한 크기가 넘어가는 경우 2배의 크기로 재할당
  • 각 노드가 데이터와 포인터를 가지고 있고, 한줄로 쭉 연결되어 있다
  • 데이터 필드(데이터 값 저장), 링크 필드(다른 노드 주소값 저장) 을 가지고 있다.

단일 연결 리스트

  • 하나의 링크필드를 가진 노드들이 자기 후속 노드와 연결
  • 마지막 노드의 링크 필드는 null을 가짐

이중 연결 리스트

  • 하나의 노드가 왼쪽 링크, 오른쪽 링크 필드를 가짐
  • 양 방향으로 탐색이 가능해서 선행 노드 검색이 쉬움

 

시간 복잡도 BIG - O

 

스택 후입선출

큐 선입선출

 

 

버블 정렬

 

선택정렬

 

퀵정렬

→ Partitional로 파티션을 나눔

 


 

✔️ 팀 프로젝트

초기 화면 셋팅

 - 개인 과제에서 초기화면 과제 코드를 가져왔다.

 

Player 역할을 할 Character와  Monster 클래스를 만듬

    public class Character
    {
        public string Name { get; }
        public string Job { get; }
        public int Level { get; }
        public int Atk { get; }
        public int Def { get; }
        public int Hp { get; }
        public int Gold { get; }

        public Character(string name, string job, int level, int atk, int def, int hp, int gold)
        {
            Name = name;
            Job = job;
            Level = level;
            Atk = atk;
            Def = def;
            Hp = hp;
            Gold = gold;
        }
    }
    public class Monster
    {
        public string Name { get; }
        public int Level { get; }
        public int Hp { get; }
        public int Atk { get; } 

        public Monster(string name, int level, int hp, int atk)
        {
            Name = name;
            Level = level;
            Hp = hp;
            Atk = atk;
        }

        public void MonsterDescription()
        {
            Console.WriteLine($" Lv.{Level} {Name} | HP {Hp}");
        }
    }

임시로 만들기는 했으나

아마 무수한 메서드와 무수한 필드가 생성될 예정이다.

 

내가 작업하고 있는 Visual Studio에서 Branch를 만들어서 작업

Branch에 저장과 커밋하기 → 푸쉬X

Main으로 이동

Main에 Pull 받아오기

저장과 커밋하기

Branch 선택창에서 내가만든 Branch를 오른쪽 클릭해서 비교하기

변경내용이 적은 부분을 큰 부분쪽에 병합하기

충돌이 났다면 비교 다시하기

코드 정리 후 모든 분기에 병합하기

Main에 병합된거 푸쉬하기

 

 

 

 


📝 오늘의 마무리

알고리즘이 생각보다 어렵다.

람다 함수와 뒷쪽 강의를 아직 다 안들었는데 못들으면 프로젝트 못따라갈지도 모르겠다.

 

팀 프로젝트도 기본 UI와 기본 셋팅만 해두고

Git에 Main으로 먼저 올렸다.

일단 각자 강의를 전부 들은 후 먼저 들은 사람들은 각자 맡은 부분을 만들고

강의를 모든 인원이 다 들으면

그 후에 병합하기로 했다.


 

✏️ 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기

✏️ TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기

✏️ 꾸준히 기록을 남기는 습관 가지기

 

📕 오늘의 학습 키워드

📕  공부한 내용 본인의 언어로 정리하기

📕  오늘의 회고

📕  12시간 중 얼마나 몰입했는지

📕  더 나은 미래를 위해 내일 어떤 공부를 진행할 것인지