반응형

전체 글 95

패스트캠퍼스 챌린지 최종 후기

1. 내가 C#과 유니티로 배우는 게임 개발 올인원 패키지 Online. 강의를 선택한 이유 평소에 작은 프로젝트로 혼자서 스마트폰 게임앱을 만들고 싶었다. 아버지도 하실 수 있을 정도로 쉽고 간단한 게임이면 좋을 것 같았다. 하지만 따로 학원에 다닐 시간은 부족했고, 강의 수강을 위한 비용도 생각보다 너무 비싸기에 포기했었다. 그래서 그냥 혼자서 틈틈이 공부해보려고 결심했다. 뭐랄까 새로운 목표를 가지고 싶었던 것 같다. 거창한 게임이 아니라 아주 작은 게임이라도 내 손으로 만들어 보고 싶었다. 하지만 무작정 독학으로 하기엔 너무 무리였다..기존 코딩 앱개발 관련 콘텐츠는 무궁무진하였으나 게임 개발 쪽 콘텐츠는 생각보다 많이 없었기에 독학은 정말로 맨땅에 헤딩하는 느낌이었다. 게다가 나는 유니티는 만져..

패스트캠퍼스 챌린지 50일차

[C# 프로그래밍 : 02. 알고리즘 - 03.정렬 알고리즘 - 버블정렬] 1. 버블정렬(Bubble sort)이란? 서로 이웃한 데이터들을 비교하여(n-1번) 가장 큰 데이터를 가장 뒤로 보내는 정렬방식 2. 버블정렬의 원리 첫번째 데이터와 두번째 데이터를 비교하여 첫번째 값이 더크면 두번째 데이터와 교환한다. 두번째 데이터와 세번째 데이터를 비교하여 더 큰 수를 뒤로보낸다. 이렇게 끝까지 진행하면 제일 큰 숫자가 맨 뒤로 가게 된다. 이렇게 계속 처음부터 n-1번째 데이터를 비교해서 정렬 3. 버블정렬 구현 int[] data = {20,15,1,5,10}; for(int i = 0; i data[j+1]){ Swap(ref data[j], ref data[j+1]); } } } static void..

패스트캠퍼스 챌린지 49일차

[C# 프로그래밍 : 02. 알고리즘 - 02.정렬 알고리즘 - 선택정렬] 1. 선택정렬(Selection sort)이란? 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해나가는 방식 주어진 숫자n개의 리스트에서 가장 작은 최소값을 찾는다 최소값을 맨 앞의 값과 교체한다(Swap) 교체한 맨 앞의 데이터는 정렬된 것으로 간주하고 다음 인덱스부터 1, 2 행위를 끝까지 반복한다. 2. 선택정렬의 특징 구현은 단순하지만 비교적 성능이 좋지 않음 두개의 for 루프의 실행횟수 3. 구현 int[] data = {20,15,1,5,10}; for(int i = 0; i

패스트캠퍼스 챌린지 48일차

[C# 프로그래밍 : 02. 알고리즘 - 01. 재귀호출] 1. 재귀호출(recursive call)이란? 함수 내부에서 자기자신을 반복적으로 호출 하는 것 재귀함수(Recursive Function) : 반복행위를 하는 함수 2. 사용 - 팩토리얼 문제 f(n) = n*(n-1) 단,f(1) =1 예) 결과값 = 5(nNumber)*팩토리얼재귀함수(4) ; = 5*4*팩토리얼재귀함수(3); = 5*4*3*팩토리얼재귀함수(2); = 5* 4*3*2*팩토리얼재귀함수(1); = 5*4*3*2*1; - 피보나치수열 정규식 : n2의 경우에는 f(n)= f(n-2)+f(n-1) 3. 재귀호출의 특징 일반적으로 잘 사용하지 않지만 알고리즘 구현할때 유용 끝나는 지점이 없으면 무한 반복을 함. 따라서 반드시 중지되..

패스트캠퍼스 챌린지 47일차

[C# 프로그래밍 : 선형자료구조 -08. 해쉬테이블과 딕셔너리] 1. 해쉬테이블이란? 키값의 해쉬 함수에 의해 벨류값의 데이터가 매칭되어 있는 데이터 구조 연락처에서 이름을 검색할 때, 정현이라는 이름으로 검색했을 때 정현의 전화번호가 가지고 옴 index와 ClassData로 구성된 배열로 만든 경우 이름 검색하려면 순차적으로 계속 검색해야함 데이터가 많아질 수록 불리. 이때 해쉬테이블을 사용함 키값을 해쉬함수를 통해 해쉬코드로 변경. 변경된 코드를 Buckets에 인덱스 매핑시켜서 저장함. 해쉬코드를 만드는 방법은 여러가지 규칙의 핵심은 중복이 많이 안되야함 해쉬코드가 나오면 Buckets사이즈보다 작게 나와야함 닷넷에는 좋은 효율의 해쉬함수를 만들어서 사용하기 때문에 직접 만들 걱정은 안해도 됨...

패스트캠퍼스 챌린지 46일차

[C# 프로그래밍 : 선형자료구조 -07. 큐] 1. 큐 선입선출 FIFO(First-In-First-out) 구조 처음에 들어온 데이터가 가장 먼저 나감 명령어 한개에 하나씩만 수행 2. 사용 버스 줄서기 예매 사이트에서 동시접속자 수가 많을 때 순차 접속 대기열 은행 대기표 2. 기능 - Enqueue : Rear(데이터가 들어오는 입구)로 저장공간에 데이터 입력 - Dequeue : Front(데이터가 나오는 출구)로 저장공간에서 데이터 빼는 행위 3. 구현 - 배열로 구현 static int[] m_queue = new int[5]; static int front = -1; static int rear = -1; static void Main(String[] args){ Enqueue(10); E..

패스트캠퍼스 챌린지 45일차

[C# 프로그래밍 : 선형자료구조 -06. 스택] 1. 스택 후입선출 구조로 데이터가 쌓여 있음 LIFO(Last-In-First-out) 2. 사용 예시 휴대폰 앱의 화면이동방식 브라우저의 뒤로가기 Ctrl+z(Undo) 데이터를 하나씩 쌓다가 필요시 마지막 입력된 데이터부터 꺼내서 쓸 때 알맞은 데이터 구조 3. 구현 Class ArrayStack { private int[] m_space; //스택 공간. 데이터 타입은 원하는 대로. private int m_top; //최상단 데이터 가리키는 위치 public int Count // 데이터 몇개인지 public ArrayStack(int size) //생성자 { m_space = new int[size]; m_top = -1; //데이터가 있기 때..

패스트캠퍼스 챌린지 44일차

[C# 프로그래밍 : 선형자료구조 -05. 연결리스트-2 ] 1. 단순 연결리스트(Singly Linked List)의 구현 헤드로 지정한 노드 구현 public class Node{ //나중에 타입은 런타임에 결정 public T Data { get; set; } //데이터 public Node Next{ get; set; } //포인터 public Node(T data) { Data = data ; Next = null; //다음값이 뭔지 모르니까 일단 null로 초기화 } } 데이터 맨 마지막에 추가 : public void AddLast(T data) public claass SinglyLinkedList { private Node m_head; public void AddLast(Tdata){ ..

패스트캠퍼스 챌린지 43일차

[C# 프로그래밍 : 선형자료구조 -04. 연결리스트-1 ] 1. 연결 리스트(LinkedList)란? 각각의 데이터가 메모리에 연속적으로 붙어 있지 않고 떨어져 있음. 링크 포인터로 다음 데이터 가리키는 데이터 구조 Head로 출발해서 데이터가 추가될 때마다 노드라는 것이 추가되고 연결됨 각 노드는 다음 노드를 찾아가는 링크 포인터를 가지고 있고 링크 포인터를 저장하는 공간도 따로 있음 Head : 데이터는 없고 링크 포인터를 가짐 마지막 노드 : 링크 포인터가 있음-> 불필요한 공간임. 2. ArrayList와 단순 연결 리스트(Singly LinkedList) 비교 노드 (하나의 저장 공간) , 링크 포인터(다음 노드를 가리키는 주소) ->ArrayList는 저장공간을 엘리먼트라고 부름 ArrayL..

패스트캠퍼스 챌린지 42일차

[C# 프로그래밍 : 선형자료구조 -03. 리스트2] 1. List - ArrayList의 경우 박싱, 언박싱이 자주 일어나 느려질 수도 있음 박싱(Boxing) : 값 형식을 참조형식으로 변환함. 20배 시간 소모 언박싱(Unboxing) : 참조 형식을 값 형식으로 변환함. 4배 시간 소모. int n = 100; / object a = n ; / int b = (int)o; ->n은 스택에 데이터, o는 스택의 값이 힙으로(박싱), b는 힙의 값이 스택으로 넘어감(언박싱) - List란? 개발 시 데이터 타입을 정하는게 아니라 런타임시 데이터 타입을 정하는 것을 말한다. 저장할 데이터 타입을 T에 인자값으로 넘긴다. ArrayList와 같지만 타입미리 정함. 그래서 더 속도 빠름 -List사용법 L..

반응형