자료구조) 연결 리스트(Linked List)
·
Programming/자료구조 & 알고리즘
가변형 배열에 대하여연결 리스트는 자료구조를 공부할 때 가장 먼저 나오는 자료구조이다.이 리스트라는 이름에서 유추 가능한 것처럼 목록 형태로 이루어진 데이터 형식을 의미한다. 왜 연결 리스트를 사용하는가?데이터가 고정되어 있다면, 즉 수가 정해져 있다면  = 당연히 배열을 사용하면 된다.예를 들어 이 맵에 라이트가 4개 정도 배치될 것이다 라고 한다면 Light light[4]; 처럼 사용하면 된다.혹은 array light(4) 같은 식으로 말이다. 그러나 일반적인 배열로는 IEnumerator를 다룰 수 없다. 무슨 소리냐면, 배열이 늘었다, 줄었다 하는 상황을 컨트롤 할 수 없다는 것이다. 수가 한정된 상황이라면 제어가 가능할 수도 있지만, 대부분의 상황은 그런식으로 흘러가지 않는다. 따라서 가변형..
게임수학) 벡터 - 1
·
Programming/기타
벡터의 정의위치 벡터벡터란 무엇일까... 사실 우리는 이미 벡터에 대해 살짝 알고 있다.이전 포스트에서 3D좌표계를 다룰 때 (x, y, z)와 같이 배열을 좌표라고 부르면서 특정한 위치를 가리키는 데 사용했었다.유니티에서는 이러한 좌표를 Vector3() 메서드를 이용하여 표현한다. 이러한 위치로서의 벡터를 위치 벡터라고 한다.Vector3는 이러한 세 개의 x, y, z 프로퍼티를 통해 3차원 공간의 점을 표현할 수 있다.이러한 벡터를 수학적으로 표현하려면 (x, y, z)처럼 옆으로 나열한 행벡터로도 표현이 가능하지만,그림처럼 세로로 나열한 열벡터로도 표기가 가능하다.위치벡터는 어디까지나 점의 위치를 나타낼 뿐, 만약 벡터가 위치한 공간 자체가 움직인다면 그 위치 또한 움직이게 된다.박스 위에 원이..
C#) C#에서의 배열 사용 방법
·
Programming/C C# C++
C#에서는 배열을 선언할 때 기존에 C와 C++에서 했던 방법과는 달리 자료형 바로 뒤에 대괄호를 붙이게 된다.int[] type;이런 식으로 말이다. 만약 2차원 배열이나 그 이상의 배열을 필요로 한다면,int[,] types;이런 식으로 콤마를 입력해서 차원 수를 늘릴 수 있다. 이 배열에 값을 할당하는것은 일반적으로 배열에 값을 할당하는 것처럼 선언과 동시에 초기화하면 되지만, 이미 선언된 배열에 값을 할당하는 경우 new 키워드를 사용하여 대입해야 한다. string[] languages;languages = new string[] {"C#", "C++"}; //문자 자체를 대입하는 방식languages = new string[9]; //배열의 개수만 대입하는 방식 그 외 사용법은 기존의 방식과 ..
게임수학) 좌표계 - 2
·
Programming/기타
극좌표계이전 포스트에서 설명했었던 좌표계는 직교좌표계라고 하는 좌표계였다. 이 직교 좌표계와 다른 방식으로 물체의 위치를 표현하는 좌표계도 존재하는데, 그중 대표적인 극좌표계에 대해서 설명해보겠다. 극좌표계는 크게 2D와 3D로 구분할수 있다. 먼저 2D좌표계를 한번 알아보자.  마치 단위원처럼 생겼다는 것을 알 수 있다. 2D 극좌표계에도 직교좌표계처럼 중심에 극(Pole)이라고 불리는 기준점이 존재한다. 이 극에서 반지름처럼 극축이라고 불리는 반직선이 뻗어나오게 된다. 이 극좌표계에서 평면상의 점 P의 위치를 결정하는 방법은 극축과 P를 연결하는 직선 r의 길이와 극축과 r의 각도 θ를 통해 결정된다. 즉, 점 P의 극좌표는 (r, θ)가 된다는 것이다. 이 극좌표계라는 것은 보통 항공기나 선박의 네..
C#) 캐스팅, 박싱, 언박싱
·
Programming/C C# C++
캐스팅캐스팅이란 변수의 자료형을 다른 자료형으로 변환하는 연산을 말한다.이 캐스팅에는 암시적 캐스팅과 명시적 캐스팅의 두 종류로 나뉘는데, 전자의 경우 단위가 작은 자료형에서 단위가 큰 자료형으로 캐스팅 하는경우 (float에서 double형으로 캐스팅 등등)가 있다.short a = 20;int b = a;이런 형식으로 말이다. 명시적 캐스팅의 경우 자료형의 형태가 다르거나 더 큰 자료형에서 작은 단위의 자료형으로 형 변환하는 경우 주로 사용한다.double a = 3.14;float b = (float) a;float c = 2.17;int d = (int) c;두 경우 모두 명시적 캐스팅이지만, 조금의 차이가 존재한다.전자의 경우 큰 단위(8바이트)에서 작은 단위(4바이트)로 자료형이 작아지기 때문..
게임수학) 좌표계 - 1
·
Programming/기타
2D 좌표계이번에는 좌표계에 대해서 한번 알아보자.좌표계는 물치의 위치를 하나의 점으로 가리키기 위한 체계이다.원점을 기준으로 x축과 y축으로 이루어진 좌표계를 직교 좌표계라고 한다. 다음과 같이 생겼다. 이러한 직교 좌표계를 데카르트 좌표계라고도 하는데, 데카르트가 좌표계를 도입했다고 알려져있기 때문이다. 좌표계를 보면 x축과 y축으로 4개의 공간이 분할되어있다는 것을 알 수 있는데, 이를 사분면이라고 한다.각 사분면은 오른쪽 위에서부터 반시계 방향으로 1사분면, 2사분면, 3사분면, 4사분면이라고 구분할 수 있다. 3D 좌표계이제 x축과 y축을 이용하여 2D 평면상에서의 위치를 특정할수 있게 되었다. 이제 축을 하나 더 늘려보자. 이것이 3차원 좌표계의 예시이다. 이제 우리는 x축, y축, z축을 사..