일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- FSM
- LINQ
- 장애물달리기
- script
- 효과음
- BGM
- Generic
- delegate
- inputsystem
- 스택
- c#
- invokec#events
- 메서드
- 유한상태머신
- ObjectPool
- 유니티
- 인터페이스
- soundmanager
- 직렬화
- 프로그래머스
- skybox
- 비선형자료구조
- 코루틴
- 람다식
- UI
- 자료구조
- 배열
- 스파르타내일배움캠프
- InputManager
- unity
- Today
- Total
목록C# (23)
Unity 개발일지
[확인문제] 1. Graph가 무엇인지 알고 있나요?더보기Graph는 노드(Node)와 그 노드들을 연결하는 간선(Edge)으로 구성된 자료구조이다.그래프는 여러 형태로 나타날 수 있으며, 노드와 간선의 개수, 방향성, 가중치 여부 등에 따라 분류된다. 2. Tree는 Graph인가요? Graph는 Tree인가요?더보기Tree는 Graph의 일종으로, 트리는 사이클이 없는 연결된 그래프이다.반대로 모든 Graph가 Tree인 것은 아니다. Graph는 사이클이 있을 수도 있고, 연결되지 않을 수도 있다. 3. NavMesh가 길찾기를 위해 사용하는 알고리즘은 무엇인가요?더보기NavMesh는 일반적으로 A* (A-star) 알고리즘을 사용합니다. A* 알고리즘은 휴리스틱을 사용하여 최단 경로를 효율적으로 ..
[확인문제] 1. Tree가 무엇인지 알고 있나요? Tree의 종류에는 어떤 것들이 있나요?더보기Tree는 계층적인 구조를 가지는 데이터 구조로, 노드(Node)와 간선(Edge)으로 이루어져 있다. 루트 노드(Root Node)에서 시작하여 각 노드는 자식 노드(Child Node)를 가질 수 있다. 대표적인 트리의 종류로는 이진 트리(Binary Tree), AVL 트리, 이진 탐색 트리(Binary Search Tree), B 트리, 힙(Heap) 등이 있다. 2. 다음의 트리를 DFS로 방문할 때와 BFS로 방문할 때의 순서가 어떻게 될까요?더보기DFS (Depth-First Search) 순서: 1 -> 2 -> 6 -> 9 -> 3 -> 7 -> 4 -> 8 -> 5BFS (Breadth-Fi..
[확인문제] 1. Queue가 무엇인지 알고있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?더보기FIFO(First In First Out 선입선출) 방식으로 작동하는 자료구조로 다음과 같은 방식으로 작동한다. Enqueue : Queue의 맨 뒤에 데이터를 삽입Dequeue : Queue의 맨 앞에 있는 데이터를 제거하고 반환Peek : Queue의 맨 앞에 있는 데이터를 확인(제거하지 않고 확인만)IsEmpty : Queue가 비어있는지 확인 2. Queue를 직접 구현해본 경험이 있을까요? 없다면 직접 구현해봅시다.클래스 및 주요 멤버 변수data타입: T[] (제네릭 타입 배열)역할: 큐의 요소를 저장하는 배열입니다. 큐의 최대 크기는 이 배열의 크기로 제한됩니다. 배열의 초기 크기는 100..
[확인문제]1. Stack이 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?더보기스택은 LIFO(Last In, First Out 후입선출) 방식으로 동작하는 자료구조로 다음과 같은 방식으로 작동한다.Push : 스택에 데이터를 삽입Pop : 스택의 맨 위에 있는 데이터를 제거하고 반환Peek : 스택의 맨 위에 있는 데이터를 확인한다.(제거하지 않고 확인만)IsEmpty : 스택이 비어있는지 확인한다 2. Stack을 직접 구현해본 경험이 있을까요? 없다면 직접 구현해봅시다. 클래스 및 주요 멤버 변수data타입: T[] (제네릭 타입 배열)역할: 스택의 요소를 저장하는 배열입니다. 스택의 최대 크기는 이 배열의 크기로 제한됩니다. 배열의 초기 크기는 1000으로 설정되어 있습니다..
[확인문제]1. LinkedList가 무엇인지 알고 있나요? 어떤 방식으로 작동하는지 설명할 수 있을까요?더보기LinkedList는 데이터를 저장하는 선형 자료 구조이다. 배열과는 달리, 데이터를 담고 있는 노드 단위로 구성되어 있으며, 각 노드는 다음 노드를 가리키는 링크 를 가지고 있다.따라서 LinkedList의 노드들은 연결되어있는데, 이로 인해 리스트의 순서를 유지할 수 있다. LinkedList는 '단일 연결 리스트'와 '이중 연결 리스트'로 나눌 수 있다.단일 연결 리스트 : 각 노드는 다음 노드를 가리키는 링크만을 가지고 있다.이중 연결 리스트 : 각 노드는 다음 노드를 가리키는 링크뿐만 아니라, 이전 노드를 가리키는 링크도 가지고 있다. 노드(Node) : 각 노드는 데이터와 다음 노드..
[확인문제] 1. 다음 코드에서 제네릭을 사용한 부분을 식별하고, 해당 코드가 제네릭을 사용하지 않았을 때 발생할 수 있는 문제점에 대해 설명하세요.더보기제네릭을 사용한 부분public class Box{ public T Value { get; set; } public void DisplayValue() { Console.WriteLine($"Value: {Value}"); }} 제네릭을 사용하지 않으면 각 데이터 타입에 대해 별도의 클래스를 작성해야한다.제네릭을 사용하면 코드 재사용성을 높이고, 타입 안전성을 보장할 수 있다.제네릭을 사용하지 않으면 런타임에 잘못된 타입이 사용될 수 있어 오류가 발생할 수 있다. 2. 아래 코드가 어떤 기능을 하는지, 어떤 방식으로 동..
[확인 문제] 1. 위의 코드가 문제가 되는 이유를 메모리 관점에서 설명해주세요.더보기위 코드에서 LogMessages는 문자열 연결 연산('+')을 통해 로그 메시지르 추가한다.String은 불변 객체이므로, 매번 새로운 문자열 객체가 생성되고, 이전 문자열이 가비지 컬렉션 대상이 된다.10,000번의 반복문이 실행되면서 많은 양의 메모리 할당과 해제가 반복적으로 발생하여 성능 저하와 메모리 낭비가 발생한다. 2. 아래와 같이 string이 아닌 StringBuilder가 권장되는 이유는 무엇일까요?더보기StringBuilder는 가변 객체로, 내부 버퍼를 사용하여 문자열을 수정한다.문자열 연결 시 새로운 객체를 생성하지 않고, 기존 버퍼를 재사용하므로 메모리 사용이 효율적이고, 성능이 향상된다. [..
[확인문제] 1. 위와 같은 코드에서, 다음과 같이 다중 상속을 하는 것이 가능할까요? 가능/불가능하다면 이유는 무엇일까요?더보기C#에서는 다중 상속이 불가능하다. C#은 다중 상속을 지원하지 않으며, 그 이유는 다중 상속이 복잡성과 모호성을 초래할 수 있기 때문이다. 특히, 여러 기본 클래스가 동일한 메서드를 구현할 경우 어떤 메서드를 상속받아야 할지 모호해진다. 2. 만약 C#에서 다중 상속이 지원되었다면, 클래스 D는 어떤 문제에 직면하게 될까요?더보기클래스 D는 "다이아몬드 문제"에 직면하게 된다. 이는 B와 C가 동일한 부모 클래스 A를 상속받고, D가 B와 C를 상속받을 때 발생한다. B와 C가 A의 동일한 메서드를 오버라이드할 경우, D는 어떤 메서드를 상속받아야 할지 모호해진다. [설명 문..