이전 포스팅에서 그래프 탐색 이론 중 하나인 DFS (깊이 우선 탐색) 에 대해 배우고, 실제 구현하는 코드를 살펴보았다. 그래프 탐색 알고리즘 - DFS (깊이 우선 탐색) 코드 구현 [자료구조C#] 그래프 탐색 알고리즘 - DFS (깊이 우선 탐색) 코드 구현위 포스팅에서 우리는 그래프 예시를 통해 DFS가 무엇인지에 대해 이해했다.이제 실제로 이 인물 관계도 그래프와 DFS를 C# 코드로 구현해보자.지난 포스팅에서도 잠깐 살펴 보았지만, 우선 이 인nybot-house.tistory.com이번 포스팅에서는 그래프 탐색 이론 중 하나인 BFS (Breadth-First Search, 너비 우선 탐색)에 대해 알아보자.BFS 너비 우선 탐색이란?BFS는 그래프 탐색 알고리즘 중 하나로, 시작 정점에서 ..
c#
재귀 함수란?재귀 함수는 자기 자신을 호출하는 프로그래밍 기법이다. 재귀 함수는 복잡한 문제를 더 작은 하위 문제로 나누어 해결할 수 있도록 도와준다.재귀함수 기본 구조재귀함수는 두 가지 주요 부분으로 구성된다.기저 조건(Base Case): 함수가 더 이상 자기 자신을 호출하지 않고 종료되는 조건.재귀 단계(Recursive Step): 함수가 자기 자신을 호출하는 단계.피보나치 수열 재귀 함수 예시*피보나치 수열이란? 피보나치 수 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 피보나치 수를 이용한 사각형 채우기 수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다.ko.wikipedia.o..
위 포스팅에서 우리는 그래프 예시를 통해 DFS가 무엇인지에 대해 이해했다.이제 실제로 이 인물 관계도 그래프와 DFS를 C# 코드로 구현해보자.지난 포스팅에서도 잠깐 살펴 보았지만, 우선 이 인물 관계도를 그래프로 구현하는 방법에는 크게 2가지가 있다. 배열을 사용해 인접 행렬을 만드는 방법과, 리스트 배열을 사용해서 인접 리스트를 만드는 방법이다. class Graph{ //모든 정보를 들고 있는 방식, 배열 사용 int[,] adj = new int[6, 6] { {0, 1, 0, 1, 0, 0}, //0번 카리나 정점 연결 정보 {1, 0, 1, 1, 0, 0}, //1번 제니 정점 연결 정보 {0, 1, 0, 0, 0, 0}, //2번 지수 ..
https://nybot-house.tistory.com/113 [자료구조] 그래프 개요자료 구조 중 그래프에 대해 알아보자.(기본 교과 과정에서 배웠던 수학의 그래프와는 전혀 관계 없음을 밝힌다)그래프란?: 현실 세계의 사물이나 추상적인 개념 간의 연결 관계를 표현하는데nybot-house.tistory.com이전 포스트에서 그래프의 개요에 대해 알아 보았다. 이제 실제 그래프를 구현해보고, 이 그래프를 탐색하는 방법 중 하나인 DFS(깊이 우선 탐색) 방법에 대해 알아보자.그래프 생성그래프를 구현해보기에 앞서서, 앞서 만들어 봤던 가상의 소셜 네트워크 관계도를 생각해보자.이제 우리는 그녀들과 데이트를 하려고 한다. 다만 서로 관계가 있는, 즉 연결되어 있는 인물들만 만날 수 있다. 우리는 그녀들을 모..
자료 구조 중 그래프에 대해 알아보자.(기본 교과 과정에서 배웠던 수학의 그래프와는 전혀 관계 없음을 밝힌다)그래프란?: 현실 세계의 사물이나 추상적인 개념 간의 연결 관계를 표현하는데 사용되는, 정점과 간선으로 구성된 데이터 구조이다.정점(Vertex): 데이터를 표현 (사물, 개념 등). 그래프의 기본 단위로, 각 정점은 고유한 값을 가질 수 있다. 정점은 일반적으로 원이나 점으로 표시된다.간선(Edge): 정점간의 연결을 나타낸다. 간선은 방향이 있을 수도 있고, 없을 수도 있다. (일방향일 수도, 양방향일 수도 있다는 것).ex) 소셜 네트워크 관계도, 지도와 길찾기, 웹 페이지 링크위 예시에서 각 인물들이 정점(Vertex)가 될 것이고, 서로 친구 사이임을 표시하는 선이 간선이 될 것이다. 이..
선형 자료 구조인 스택과 큐는 데이터 구조에서 중요한 역할을 하는 두 가지 개념이다. 면접에서 자주 물어보는 내용이니 잘 숙지해 둘 필요가 있다. (*선형 자료 구조: 데이터가 순차적으로 배열되어, 각 요소가 정확히 하나의 앞 요소와 하나의 뒤 요소를 가지는 구조이다. 데이터의 순서가 중요하며, 요소 간의 관계가 일대일로 연결되어 있다.)스택(Stack)스택은 선형 자료 구조의 한 종류로, 후입선출 (LIFO, Last In First Out) 원칙에 따라 작동하는 데이터 구조이다. 즉, 마지막에 삽입된 요소가 가장 먼저 제거된다. 스택의 각 요소는 다음과 같은 방식으로 정렬된다.Push: 스택의 맨 위에 요소를 추가한다.Pop: 스택의 맨 위에 있는 요소를 제거하고 반환한다.Peek: 스택의 맨 위에 ..
유니티에서 게임 오브젝트의 동작을 정의할 때, Update, LateUpdate, FixedUpdate 메서드를 자주 사용하게 된다. 이들 메서드는 각각 다른 용도로 사용되는데, 어떤 차이점이 있는지 알아보자.결론부터 Update, LateUpdate, FixedUpdate 메서드는 각각 특정 상황에 맞는 용도로 사용된다. 게임 로직과 사용자 입력 처리는 Update에서, 다른 오브젝트 상태에 종속적인 작업은 LateUdpate에서, 물리 연산은 FixedUpdate에서 처리하는 것이 일반적이다. Update 메서드 Update 메서드는 매 프레임마다 한 번 호출된다. 보통 사용자 입력 처리, 애니메이션 업데이트, 게임 로직 등을 처리할 때 사용한다. 즉 지속적으로 상태를 업데이트해야 하는 모든 게임 ..
C#에서 동적 배열(dynamic array)은 크기를 동적으로 조정할 수 있는 배열을 의미한다. 기본적인 배열과는 달리, 동적 배열은 크기가 고정되어 있지 않아 필요에 따라 요소를 추가하거나 제거할 수 있다. 즉, 동적으로 조절 가능하다. C#에서는 List가 대표적인 동적 배열의 예이다. List는 System.Collections.Generic 네임스페이스에 포함되어 있으며, 요소의 추가, 제거, 검색 등의 다양한 기능을 제공한다.List의 주요 메서드Add(T item): 리스트에 요소를 추가합니다.Remove(T item): 리스트에서 특정 요소를 제거합니다.RemoveAt(int index): 리스트의 특정 인덱스에 있는 요소를 제거합니다.Clear(): 리스트의 모든 요소를 제거합니다.Cou..