C# - 덱 (Deque : Double Ended Queue)
·
C#
덱 (Deque : Double Ended Queue)디큐? 데큐? 이런 식으로 읽는 줄 알았는데 덱이라고 읽는게 맞다고 한다.어? 혹시 카드덱? 이라 생각할 수도 있지만 사실은 무관하다고 한다. Deque는 임의 접근이 가능한 시퀀스 컨테이너로, 양 끝에서 삽입/삭제가 가능하다. 즉, 일반적인 Queue는 앞에서 꺼내고 뒤에서 넣는 구조(FIFO)지만, Deque는 앞/뒤 모두에서 자유롭게 삽입 및 삭제가 가능하다.Stack + Queue의 기능을 모두 가졌다고 보면 된다. 표준 C 언어에서는 별도의 컨테이너 라이브러리가 없어 덱을 사용하려면 직접 구현하거나 외부 라이브러리를 써야 한다고 한다.C++ 은 STL(Standard Template Library)에 std::deque 클래스를 제공한다고 한..
C# - 스택/큐 실습 문제 풀이
·
C#
과제Milk라는 클래스와 VendingMachine 이라는 클래스를 하나 만들겠습니다. Milk의 맴버변수로, 유통기한을 나타내는 int를 작성해주시기 바랍니다.VendingMachine 클래스에는 Queue를 활용하여 Milk를 담을 수 있는 컨테이너를 필드로 작성하여 주시기 바랍니다.벤딩머신의 메소드로, 우유를 집어넣는 코드와 우유를 꺼내는 기능을 작성하되, 꺼낼때는 콘솔에 유통기한 및 큐에 남아있는 갯수를 출력하는 기능을 작성해주시기 바랍니다. 갯수가 0일때 우유를 꺼내는 기능을 호출하게 되면 꺼내는 대신 다른 멘트가 나오게끔 작성해주시길 바랍니다. Milk.csusing System;namespace StackQueue{ class Milk { public int Expi..
C# - 스택 (Stack), 큐 (Queue)
·
C#
스택 (Stack)자료를 적층 구조로 쌓아 올린 것을 의미한다.후입선출 (LIFO, Last In First Out) 또는 선입후출 (FILO, First In Last Out) 의 구조로나중에 쌓은 것이 먼저 나온다는 뜻이다.즉, 상자나 카드 같은 것을 쌓아 올리고, 그것을 위에서부터 꺼내는 방식이다.웹 브라우저의 뒤로가기 기능, 프로그램의 Undo 기능 같은 것들을 예시로 들 수 있다. DFS(깊이 우선 탐색) 알고리즘에서도 사용된다.DFS 에 대해서는 이전 글에 정리되어있다. 기본적인 사용 방식은 리스트와 매우 비슷하다Stack myStack = new Stack(); 주요 메서드Push : 데이터를 스텍 위에 추가한다.stack.Push(n); Pop : 스택 맨 위 요소를 꺼내 제거하고 반환한다..
C# - BFS (너비 우선 탐색) / DFS (깊이 우선 탐색)
·
C#
자료구조는 크게 두 가지로 나뉜다. 선형 구조: 데이터가 일렬로 이어지는 구조. 예를 들어 배열, 리스트, 큐, 스택 등이 있다. 한 원소 다음에 또 다른 원소가 순차적으로 이어진다.비선형 구조: 데이터가 계층적 혹은 망 형태로 이어진 구조. 트리(Tree), 그래프(Graph) 등이 대표적이다. 한 노드에서 여러 갈래로 뻗어 나가며, 선형 구조보다 더 복잡한 관계를 표현할 수 있다. 이번 글에서는 비선형 구조의 BFS, DFS에 대해 이야기해 볼 것이다. BFS : Breadth First Search ( 너비 우선 탐색 )BFS는 가까운 곳부터 차례대로 탐색하는 방법이다.시작 노드에서 출발해 인접한 노드들을 먼저 탐색하고, 그 다음 단계로 더 멀리 있는 노드들을 탐색한다.그렇기 때문에 최단 경로 탐색..