본문 바로가기
728x90
반응형

알고리즘11

셋(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 전공지식 노트) 공간 복잡도 공간 복잡도 공간 복잡도(Space Complexity)는 어떤 알고리즘 또는 프로그램이 실행될 때 필요로 하는 메모리 공간의 양을 나타내는 메트릭입니다. 공간 복잡도는 주로 알고리즘이나 데이터 구조가 메모리를 어떻게 사용하는지를 분석하고 설명하는 데 사용됩니다. 공간 복잡도 목적 메모리 요구 사항 평가: 특정 알고리즘이나 데이터 구조가 얼마나 많은 메모리를 사용하는지 이해하는 데 도움이 됩니다. 이는 시스템 또는 장치의 물리적 메모리 또는 가상 메모리에 대한 요구 사항을 평가하는 데 중요합니다. 자원 관리: 프로그램이나 알고리즘이 사용 가능한 메모리를 효율적으로 활용하는지 확인하는 데 사용됩니다. 메모리 공간의 효율적인 사용은 시스템 성능을 향상시키고, 메모리 부족 문제를 방지하는 데 중요.. 2023. 10. 23.
시간 복잡도(면접을 위한 CS 전공지식 노트) 시간 복잡도 시간 복잡도 시간 복잡도는 알고리즘 또는 자료구조의 성능을 나타내는 메트릭으로, 입력 데이터 크기에 따른 알고리즘 실행 시간의 증가 추이를 설명합니다. 시간 복잡도는 주로 빅 오(O) 표기법을 사용하여 표현되며, 입력 크기 n에 대한 함수로 나타냅니다. 시간 복잡도 개념 최선, 평균, 최악의 경우 (Best Case, Average Case, Worst Case): 알고리즘의 시간 복잡도는 일반적으로 세 가지 경우로 나뉩니다. 최선의 경우 (Best Case): 주어진 입력에 대해 알고리즘이 가장 빨리 실행되는 경우의 시간 복잡도를 나타냅니다. 평균 경우 (Average Case): 입력 데이터의 모든 가능한 경우를 고려하여 평균적으로 알고리즘이 실행되는 경우의 시간 복잡도를 나타냅니다. 최.. 2023. 10. 22.
728x90
반응형