본문 바로가기

Development

자료구조 기초 - 배열, 연결 리스트, 스택, 큐, 해시 테이블

안녕하세요, GameLabMaster입니다! 오늘은 기술 면접을 준비하면서 알아야 할 자료구조의 기초에 대해 알아보겠습니다. 자료구조는 프로그래밍에서 데이터를 효율적으로 관리하고 사용하기 위한 중요한 개념입니다. 기본적인 자료구조를 이해하고 활용할 줄 알아야 면접에서 좋은 결과를 얻을 수 있습니다.

배열(Array)

배열은 동일한 자료형의 데이터를 연속적으로 저장하는 자료구조입니다. 배열의 각 요소는 인덱스를 통해 접근할 수 있으며, 배열의 크기는 고정되어 있습니다.

 

예시:

int[] numbers = new int[5] {1, 2, 3, 4, 5};
Console.WriteLine(numbers[0]); // 출력: 1

연결 리스트(Linked List)

연결 리스트는 노드(Node)라는 요소들이 포인터를 통해 서로 연결되어 있는 자료구조입니다. 연결 리스트는 동적으로 크기를 조절할 수 있으며, 노드의 삽입 및 삭제가 용이합니다.

 

예시:

LinkedList<int> linkedList = new LinkedList<int>();
linkedList.AddLast(1);
linkedList.AddLast(2);
linkedList.AddLast(3);

foreach (int value in linkedList)
{
    Console.WriteLine(value);
}

스택(Stack)

스택은 후입선출(LIFO, Last In First Out) 구조를 가진 자료구조입니다. 스택에 데이터를 추가하는 것을 'push'라고 하며, 가장 마지막에 추가된 데이터부터 꺼내는 것을 'pop'이라고 합니다.

 

예시:

Stack<int> stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
stack.Push(3);

Console.WriteLine(stack.Pop()); // 출력: 3

큐(Queue)

큐는 선입선출(FIFO, First In First Out) 구조를 가진 자료구조입니다. 큐에 데이터를 추가하는 것을 'enqueue'라고 하며, 가장 먼저 추가된 데이터부터 꺼내는 것을 'dequeue'라고 합니다.

 

예시:

Queue<int> queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);

Console.WriteLine(queue.Dequeue()); // 출력: 1

해시 테이블(Hash Table)

해시 테이블은 키(Key)와 값(Value) 쌍으로 데이터를 저장하는 자료구조입니다. 해시 함수를 사용하여 키를 해시 코드로 변환하고, 이를 인덱스로 사용해 데이터를 저장 및 검색합니다. 해시 테이블은 검색, 삽입, 삭제 작업을 평균적으로 상수 시간에 수행할 수 있어 빠른 성능을 제공합니다.

 

예시:

Dictionary<string, int> hashTable = new Dictionary<string, int>();
hashTable["one"] = 1;
hashTable["two"] = 2;
hashTable["three"] = 3;

Console.WriteLine(hashTable["two"]); // 출력: 2

 

오늘은 자료구조 기초에 대해 알아봤습니다. 배열, 연결 리스트, 스택, 큐, 해시 테이블 등의 자료구조는 프로그래밍에서 데이터를 효율적으로 관리하고 활용하기 위한 핵심 요소입니다. 이러한 자료구조들을 이해하고 기술 면접에서 자신있게 설명할 수 있도록 준비하시기 바랍니다.

다음 포스팅에서는 알고리즘 기초에 대해 알아보겠습니다. 알고리즘 역시 면접에서 중요한 주제로 다루어지기 때문에 꼭 이해하고 준비하시기 바랍니다. 기술 면접 준비에 힘써 주세요, 그럼 다음 포스팅에서 만나요!