본문 바로가기
728x90
반응형

목차훔치기/면접을 위한 CS 전공지식 노트89

해시 테이블(Hash Table)(면접을 위한 CS 전공지식 노트) 해시 테이블(Hash Table) 해시 테이블(Hash Table) 해시 테이블(Hash Table)은 비선별형 자료구조 중 하나로, 데이터를 효율적으로 저장하고 검색하기 위해 설계된 자료구조입니다. 해시 테이블은 키-값(key-value) 쌍을 저장하는 데 주로 사용되며, 키를 사용하여 값을 검색하거나 수정할 수 있습니다. 이러한 구조는 데이터를 효율적으로 저장하고 검색하는 데 매우 빠르고 효율적인 방법을 제공합니다. 해시 테이블 주요 특징 및 작동 원리 해시 함수(Hash Function): 해시 테이블은 해시 함수를 사용하여 키를 고유한 주소(인덱스)로 변환합니다. 이 해시 함수는 주어진 키로부터 일반적으로 고정된 길이의 해시 코드를 생성합니다. 이 해시 코드는 배열의 인덱스로 사용됩니다. 배열(백.. 2023. 11. 4.
셋(Set)(면접을 위한 CS 전공지식 노트) 셋(Set) 셋(Set) 셋(Set)은 비선별형 자료구조로, 컴퓨터 과학 및 프로그래밍에서 중복되지 않는 값을 저장하는 데 사용됩니다. 셋은 주로 집합 이론에서 영감을 받아 만들어진 자료구조로, 집합 개념과 유사하게 각 요소는 중복되지 않으며 순서가 없습니다. 이러한 특성 때문에 셋은 고유한 값들의 모음을 저장하거나 중복을 제거할 때 유용하게 활용됩니다. 셋의 주요 특징 중복 요소가 없음: 셋은 중복된 요소를 허용하지 않습니다. 만약 동일한 요소를 여러 번 추가하더라도 그 값은 하나만 유지됩니다. 순서가 없음: 셋은 요소들을 어떤 순서로 저장하는지에 대한 보장이 없습니다. 따라서 요소를 삽입한 순서대로 접근할 수 없으며, 정렬되지 않은 상태로 보관됩니다. 셋은 다양한 프로그래밍 언어에서 지원되며, 각 언.. 2023. 11. 3.
맵(Map)(면접을 위한 CS 전공지식 노트) 맵(Map) 맵(Map) "비선별형 자료구조"라는 용어는 일반적으로 자료를 저장하고 관리하기 위한 여러 가지 자료 구조 중 하나를 나타냅니다. 비선별형 자료구조는 데이터를 저장할 때 특정한 순서나 계층 구조를 고려하지 않는 자료구조를 의미합니다. 이는 데이터의 저장 및 검색을 위한 특정한 규칙이나 순서를 요구하지 않는 자료구조를 의미합니다. 비선별형 자료구조는 데이터의 특성에 따라 여러 형태로 나타날 수 있으며, 일반적으로 데이터를 단순하게 저장하고 접근하는 데 사용됩니다. 맵(Map)은 비선별형 자료구조 중 하나로, 키-값(key-value) 쌍을 저장하는 데 사용됩니다. 각 키는 고유하며, 각 키에 대응하는 값을 저장합니다. 이것은 데이터를 검색하기 위한 빠른 방법을 제공하며, 특정 키에 대한 값을 .. 2023. 11. 2.
우선순위 큐(면접을 위한 CS 전공지식 노트) 우선순위 큐 우선순위 큐 우선순위 큐(Priority Queue)는 비선별형 자료구조로, 요소들을 저장하고 검색하는 일반적인 큐(Queue)와는 다르게 각 요소가 우선순위를 가지고 있습니다. 이것은 일반적으로 요소를 우선순위에 따라 정렬된 순서로 처리하거나 접근하기 위해 사용됩니다. 작업 스케줄링: 우선순위 큐를 사용하여 다양한 작업 또는 태스크를 우선순위에 따라 처리하는 스케줄링 알고리즘을 구현할 수 있습니다. 높은 우선순위를 가진 작업이 낮은 우선순위를 가진 작업보다 먼저 실행됩니다. 그래프 알고리즘: 다익스트라 알고리즘, A* 알고리즘 및 프림 알고리즘과 같은 그래프 기반 알고리즘에서 최소 거리나 최소 비용 경로를 찾을 때 우선순위 큐가 사용됩니다. 이벤트 처리: 이벤트 처리 시스템에서 다음 이벤트.. 2023. 11. 1.
힙(Heap)(면접을 위한 CS 전공지식 노트) 힙(Heap) 힙(Heap) 힙(Heap)은 비선별형 자료구조 중 하나로, 주로 우선순위 큐(priority queue)를 구현하는 데 사용되는 자료구조입니다. 힙의 특징 부모-자식 관계: 힙은 일반적으로 이진 트리(binary tree) 구조를 가집니다. 각 노드는 최대 두 개의 자식 노드를 가지며, 부모 노드와 자식 노드 간에는 특정한 순서(최소 힙 또는 최대 힙)가 유지됩니다. 최소 힙과 최대 힙: 힙은 두 가지 주요 유형이 있습니다. 최소 힙(Min Heap): 각 부모 노드는 그 자식 노드보다 작거나 같은 값을 가집니다. 따라서 루트 노드는 전체 트리에서 가장 작은 값을 가집니다. 최대 힙(Max Heap): 각 부모 노드는 그 자식 노드보다 크거나 같은 값을 가집니다. 따라서 루트 노드는 전체.. 2023. 10. 31.
트리(면접을 위한 CS 전공지식 노트) 트리 트리 트리(Tree)는 비선별형 자료구조 중 하나로, 데이터를 계층적으로 표현하는데 사용되는 중요한 구조입니다. 트리는 그래프(Graph) 이론의 일부로, 여러 노드(Node)로 구성된 구조로, 각 노드는 연결된 가지(Edge)로 다른 노드와 연결됩니다. 트리 구조의 특징 루트(Root): 트리 구조에서 한 노드는 루트 노드로 정의됩니다. 이 루트 노드는 모든 다른 노드로 가는 경로를 가지고 있으며, 트리의 최상단에 위치합니다. 노드(Node): 트리의 각 노드는 데이터를 저장하거나 나타내는 요소입니다. 노드 간에는 부모-자식 관계가 있으며, 부모 노드에서 자식 노드로의 가지로 연결됩니다. 부모(Parent)와 자식(Child): 트리에서 각 노드는 부모 노드와 하나 이상의 자식 노드를 가질 수 있.. 2023. 10. 30.
그래프(면접을 위한 CS 전공지식 노트) 그래프 그래프 그래프(Graph)는 비선형 자료구조 중 하나로, 여러 객체 또는 엔티티 간의 관계를 표현하는데 사용되는 추상적인 자료구조입니다. 그래프는 네트워크, 연결성, 의존성, 상호작용 등을 나타내는데 유용하며, 실제 세계에서의 다양한 문제를 모델링하는 데 활발하게 사용됩니다. 그래프 이론은 수학적이고 알고리즘적인 분야에서 중요한 역할을 합니다. 그래프는 노드(node)와 간선(edge)으로 이루어져 있습니다. 노드(Node): 노드는 그래프 내에서 객체 또는 엔티티를 나타냅니다. 이러한 객체는 그래프 내에서 고유한 식별자를 가지며, 때로는 "정점(vertex)"으로도 불립니다. 노드는 그래프의 구성 요소 중 하나이며, 데이터나 속성을 저장할 수 있습니다. 간선(Edge): 간선은 노드들 간의 관계.. 2023. 10. 29.
큐(면접을 위한 CS 전공지식 노트) 큐(Queue) 큐(Queue) 큐(Queue)는 자료구조의 일종으로, 데이터를 저장하고 관리하는데 사용되는 추상 데이터 형태(ADT, Abstract Data Type) 중 하나입니다. 큐는 데이터 요소를 일렬로 나열하여 관리하며, 데이터가 들어온 순서대로 처리되는 구조를 가지고 있습니다. 큐는 "선입선출" (FIFO, First-In-First-Out) 원칙을 따르며, 가장 먼저 저장된 데이터가 가장 먼저 처리되고 나중에 저장된 데이터는 나중에 처리됩니다. 큐는 다양한 응용 분야에서 사용됩니다. 예를 들어, 운영 체제에서 프로세스 스케줄링, 네트워크 데이터 패킷 처리, 대기열 관리, 그래프 알고리즘 등 다양한 컴퓨터 과학 및 소프트웨어 개발 분야에서 큐가 활용됩니다. 큐의 주요 특징 및 연산 Enqu.. 2023. 10. 28.
스택(면접을 위한 CS 전공지식 노트) 스택 스택 스택(Stack)은 컴퓨터 과학과 정보 기술에서 중요한 자료 구조 중 하나로, 데이터를 저장하고 관리하는 데 사용됩니다. 스택은 데이터 요소를 일종의 선형 데이터 구조로 저장하며, 이 데이터 요소는 일반적으로 "푸시(push)" 및 "팝(pop)"이라는 두 가지 기본 연산을 사용하여 조작됩니다. 스택은 후입선출(Last-In, First-Out, LIFO) 원칙을 따릅니다. 이것은 가장 마지막에 추가한 요소가 가장 먼저 제거되는 것을 의미합니다. 스택의 특징과 연산 푸시 (Push): 스택에 요소를 추가하는 연산을 말합니다. 이 연산은 스택의 상단(맨 위)에 새로운 요소를 삽입합니다. 팝 (Pop): 스택에서 요소를 제거하는 연산을 말합니다. 이 연산은 스택의 상단 요소를 제거하고 반환합니다... 2023. 10. 27.
728x90
반응형