내일배움캠프 Unity 68일차 TIL - 팀 9와 4분의 3 - 개발일지

Wooooo·2024년 1월 31일
0

내일배움캠프Unity

목록 보기
70/94

[오늘의 키워드]

  1. 알고리즘 - 정렬 알고리즘 정리해보기
  2. 개발일지 - 절차적 맵 생성 알고리즘의 필요성 고민

1. [정렬 알고리즘 정리해보기]

선택 정렬

  • 매 회전마다 정렬되지 않은 부분의 최소값을 선택한 다음, 가장 앞쪽에 배치해나가며 정렬하는 알고리즘
  • 시간복잡도 O(n^2)
public class SelectionSort : SortStrategy
{
    public override int[] Sort(int[] array)
    {
        int n = array.Length;
        int minIndex;

        for (int i = 0; i < n - 1; i++)
        {
            minIndex = i;

            // 앞에서부터 정렬되므로 정렬되지 않은 부분부터 최소값 찾기
            for (int j = i + 1; j < n; j++)
                if (array[j] < array[minIndex])
                    minIndex = j;

            // 스왑
            if (minIndex != i)
                (array[i], array[minIndex]) = (array[minIndex], array[i]);
        }

        return array;
    }
}

버블 정렬

  • 현재 인덱스와 다음 인덱스를 비교하여, 다음 인덱스가 더 크다면 두 인덱스를 스왑, 이 과정을 모든 원소가 정렬될 때까지 반복하는 알고리즘
  • 시간복잡도 O(n^2)
public class BubbleSort : SortStrategy
{
    public override int[] Sort(int[] array)
    {
        int n = array.Length;

        // 뒤에서부터 정렬되므로 정렬되지 않은 부분까지만 반복
        for (int i = n - 1; i > 0; i--)
        {
            // 다음 칸의 원소와 비교하며 스왑
            for (int j = 0; j < i; j++)
            {
                if (array[j] > array[j + 1])
                    (array[j + 1], array[j]) = (array[j], array[j + 1]);
            }
        }

        return array;
    }
}

2. [절차적 맵 생성 알고리즘 필요성 고민]

현재 씬에 큐브를 배치한 다음, 배치된 큐브를 데이터로 바꿔서 맵 데이터를 생성하는 아주 투박한 방식을 사용중이다.

이 방식으로 산 지형을 만들어보려는데, 이러다간 시간도 퀄리티도 모두 날릴 것 같다는 생각이 들었다.

절차적 맵 생성 방식을 이용해서 생성하면, 조금 편하지 않을까 ?

뭔가 브러시같은걸로 슥슥 그리면 나오게 하면 편할 것 같기도하다..

커브를 이용해서 펄린노이즈를 조작할 수 있으면 원하는 그림이 나올 것 같기도 하다.......

읽어보면 좋을 글

https://1217pgy.tistory.com/8

profile
game developer

0개의 댓글