전체 글75 알고리즘 2(선택정렬) 안녕하세요 게임개발자가 되기위해 공부하고 있는 구구입니다. 오늘은 자료구조에서 선택정렬에 대해 알아보도록 하겠습니다. 선택 정렬(Selection sort) - 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해 나가는 방식 하는 방법 리스트에서 최솟값을 찾는다. 최솟값을 맨앞의 값과 교체한다.(Swap) 교체한 맨 앞의 데이터는 정령된 것으로 간주, 다음 인덱스부터 1, 2의 행위를 반복 선택 정렬의 특징 - 구현은 단순하지만 비효율적인 방법 - 두 개의 for 루프의 실행 횟수 시간복잡도 - O(n^2) 최악의 경우 없이 기존의 데이터의 구성에 따라 비교횟수가 변하지 않습니다. 1회차 : n-1, 2회차 : n-2, ····· n-1회차 : 1 따라서 비교하는 횟수를 전.. 2022. 1. 3. 알고리즘 1(재귀호출) 안녕하세요 게임개발자가 되기위해 공부하고있는 구구입니다. 오늘부터는 알고리즘에 대해 공부하려 합니다. 재귀호출(Recursive call) - 함수 내부에서 자기자신을 반복적으로 호출하는 것 - 반복 행위를 하는 함수 == 재귀함수 - 알고리즘 구현 시 유용 - 반복문보다 직관적 - 복잡한 문제 빠르게 해결가능 재귀 호출 주의할 점 - 반드시 중지되어야 함(기저 조건, 종료 조건) - 재귀호출로 문제를 해결할 수 있는지 고민(스택 오버플로우 주의) 팩토리얼(Factorial) 정규식 f(n) = n*(n-1) (단, f(1) = 1) 5! = 5*4*3*2*1 = 120 코드 static int FuncFactorial(int nNumber) { int nResult = 0; if (nNumber == .. 2022. 1. 2. 선형 자료구조 5(해쉬테이블 & 딕셔너리) 안녕하세요 게임개발자가 되기위해 공부하고 있는 구구입니다. 오늘은 선형 자료구조 해쉬테이블과 딕셔너리에 대해 알아보도록 하겠습니다. 해쉬테이블 & 딕셔너리 - 키와 value로 구성된 데이터(서로 연결됨) 해쉬테이블과 딕셔너리의 특징 - 키를 가지고 빠르게 값에 접근하기 좋음 - 순서나 중복되는 데이터가 있는 경우 맞지 않음 - 미리 저장공간을 확보하기 때문에 메모리 효율이 좋지 않음 해쉬테이블과 딕셔너리는 선언방법은 살짝 다릅니다. Hashtable hash = new Hashtable(); Dictionary dic = new Dictionary(); 딕셔너리는 제너릭 타입이기 때문에 를 이용한 자료형 지정이 필요합니다. 따라서 해쉬테이블이 boxing과 unboxing이 내부적으로 많이 일어난다는 .. 2022. 1. 1. 선형 자료구조 4 (큐) 안녕하세요 게임개발자가 되기위해 공부하고 있는 구구입니다. 오늘은 선형 자료구조 큐에 대해 알아보도록 하겠습니다. 큐 - 선입 선출 구조 - FIFO(First In First Out) - 데이터가 나가는 곳, 가장 앞에 있는 데이터가 있는 곳(Front) - 데이터가 들어오는 곳, 가장 마지막에 들어온 데이터가 있는 곳(Rear) Queue의 활용 메소드 - Enqueue : 데이터 넣기 - Dequeue : 데이터 빼기 Enqueue와 Dequeue에 들어가야하는 조건들과 해당 조건에 대한 주석을 달아놨습니다. 인덱스 = Rear%배열의 크기 해당 Queue 이외의 Queue - 우선 순위 큐(큐에 값을 넣을때 우선순위도 추가해서 넣음) - 데큐(Double-ended Queue)(Front와 Rea.. 2021. 12. 31. 선형 자료구조 3 (스택) 안녕하세요! 게임개발자가 되기위해 공부하고있는 구구입니다. 오늘은 자료구조에서 스택에 대해 알아보도록 하겠습니다. 스택 - 쌓다의 의미 - 후입 선출의 구조 - LIFO(Last In First Out) - 휴대폰 앱의 화면 이동 방식 - 브라우저 뒤로가기 - Ctrl + Z(Undo) - 데이터의 가장 윗부분(가장 먼저 데이터가 빠져나가는 부분) = top 스택의 활용 메소드 - Push : 데이터를 넣는 메소드 - Pop : 데이터를 내보내는 메소드 - Peek : 데이터를 내보낼때 가장 먼저 내보내게 되는 값이 뭔지 확인 오늘은 여기까지 하도록 하겠습니다. 2021. 12. 30. 유니티 설치 방법 안녕하세요! 게임개발자가 되기위해 공부하고 있는 구구입니다. 오늘은 유니티 설치 방법에 대해 알아보도록 하겠습니다. 1. Unity홈페이지 들어가기 처음 유니티를 검색하시면 여러가지가 뜨는데 우선 유니티 사이트를 들어가야합니다. https://unity.com/kr Unity Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers. unity.com 2. 유니티 허.. 2021. 12. 29. 선형 자료구조 2 (리스트) 안녕하세요! 게임개발자가 되기위해 공부하고있는 구구입니다. 오늘은 List에 대해 알아보도록 하겠습니다. 리스트(List) ArrayList - 내부적으로 배열을 사용 LinkedList - 링크 포인터를 사용 List - 제네릭 타입 - 리스트를 다른말로 Dynamic Array라고 부름. ArrayList의 선언 방법 ArrayList list = new ArraList(); ArrayList의 특징 - 데이터의 추가 삭제가 자유롭다. - 데이터 타입에 관계없이 삽입 가능. (효율이 좋지 못함) - 생성 시 크기를 지정하지 않음. - 배열보다 속도는 느림. - 배열은 Length를 이용해서 배열의 길이를 파악했다면 List는 Count를 이용해서 요소의 수를 확인함. ex) list.Count(요소의.. 2021. 12. 28. C# 쓰레드 2 안녕하세요! 게임개발자가 되기위해 공부하고 있는 구구입니다. 오늘은 어제에 이어 C#의 쓰레드에 대해 공부하도록 하겠습니다. 쓰레드 시작·중단 1. Start - 쓰레드의 시작 - thread.Start(); // 이때 thread는 Thread 클래스로 만든 인스턴스 2. Abort - 권장하지 않음 - 함수의 종료를 보장하지 않음 3. Join - 함수의 종료를 보장 - 동작중인 함수의 끝까지 대기 4. Interrupt - Abort와 유사 - 쓰레드가 Running상태일때가 아닌(Abort), WainJoinSleep 상태일 때 예외를 던져 쓰레드를 중지시킵니다. 5. Sleep - 동작중인 쓰레드의 실행을 지정된 밀리초만큼 재움 - thread.Sleep(1000); //밀리초이기 때문에 100.. 2021. 12. 27. 이전 1 2 3 4 5 ··· 10 다음