배열 (Array)
배열은 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 저장하는 자료구조입니다. 인덱스를 사용해 요소에 빠르게 접근할 수 있으며, 정적 배열과 동적 배열로 나눌 수 있습니다.
배열은 데이터에 인덱스를 통해 직접 접근할 수 있어 검색 속도가 빠르다는 장점이 있습니다. 하지만 크기를 미리 지정해야 하며, 중간에 요소를 삽입하거나 삭제하는 데 시간이 많이 걸리는 단점이 있습니다. 배열의 시간 복잡도는 인덱스 접근 O(1), 요소 삽입/삭제 O(n)입니다.
예상 질문
Q1. 배열의 장점과 단점은 무엇인가요?
A1. 배열은 인덱스를 사용해 요소에 O(1) 시간에 접근할 수 있어 검색이 빠릅니다. 그러나 크기가 고정되어 있어 크기를 변경하려면 새로운 배열을 만들어야 하며, 중간에 요소를 삽입하거나 삭제할 때는 O(n)의 시간이 소요됩니다.
Q2. 동적 배열과 정적 배열의 차이점은 무엇인가요?
A2. 정적 배열은 크기가 고정되어 있지만, 동적 배열은 필요에 따라 크기를 조정할 수 있습니다. 동적 배열은 배열이 꽉 찼을 때 더 큰 배열을 생성하고 기존 데이터를 복사하여 저장합니다.
연결 리스트 (Linked List)
연결 리스트는 데이터 요소들이 포인터를 통해 연결된 형태로, 각 요소를 노드(Node)라고 합니다. 단일 연결 리스트(Singly Linked List)와 이중 연결 리스트(Doubly Linked List)가 있으며, 노드의 삽입과 삭제가 배열보다 효율적입니다.
연결 리스트는 크기를 유연하게 조절할 수 있어 배열과 달리 데이터 추가 시 메모리 낭비가 적습니다. 하지만 인덱스를 사용한 직접 접근이 불가능해 특정 요소를 찾으려면 처음부터 탐색해야 합니다. 삽입과 삭제의 시간 복잡도는 O(1), 탐색은 O(n)입니다.
예상 질문
Q1. 연결 리스트와 배열의 차이점은 무엇인가요?
A1. 연결 리스트는 요소들이 포인터로 연결되어 있어 크기 변경이 자유롭지만, 인덱스 접근이 불가능해 검색에 시간이 걸립니다. 배열은 인덱스를 사용해 빠르게 요소를 검색할 수 있지만 크기가 고정되어 있습니다.
Q2. 이중 연결 리스트의 장점은 무엇인가요?
A2. 이중 연결 리스트는 노드가 앞쪽과 뒤쪽으로 연결되어 있어 양방향으로 탐색이 가능합니다. 따라서 노드 삭제나 탐색에서 더 유연하게 사용할 수 있습니다.
스택 (Stack)
스택은 데이터를 쌓아 올린 형태의 자료구조로, 마지막에 추가된 데이터가 가장 먼저 제거되는 후입선출(LIFO) 방식을 사용합니다.
스택은 함수 호출 관리, 수식 계산, 괄호 검사 등에서 많이 사용됩니다. 삽입과 삭제는 스택의 맨 위에서만 이루어지며, 시간 복잡도는 O(1)입니다. 대표적인 구현 방법으로 배열과 연결 리스트가 있습니다.
예상 질문
Q1. 스택은 어떤 상황에서 주로 사용되나요?
A1. 스택은 함수 호출 관리(재귀 호출), 수식 계산(후위 표기법), 괄호 검사(문법 검사) 등에서 사용됩니다.
Q2. 스택의 시간 복잡도는 무엇인가요?
A2. 스택에서 삽입과 삭제는 항상 맨 위에서 이루어지므로 시간 복잡도는 O(1)입니다.
큐 (Queue)
큐는 선입선출(FIFO) 방식으로 동작하는 자료구조로, 먼저 들어온 데이터가 먼저 나갑니다. 줄 서기나 작업 처리에 적합한 구조입니다.
큐는 데이터가 순서대로 처리되어야 하는 상황에서 많이 사용됩니다. 기본 큐 외에도 원형 큐(Circular Queue)와 우선순위 큐(Priority Queue) 같은 변형이 있습니다. 삽입과 삭제의 시간 복잡도는 O(1)입니다.
예상 질문
Q1. 큐와 스택의 차이점은 무엇인가요?
A1. 스택은 후입선출(LIFO) 방식으로 마지막에 추가된 데이터가 먼저 제거되며, 큐는 선입선출(FIFO) 방식으로 먼저 들어온 데이터가 먼저 제거됩니다.
Q2. 원형 큐가 필요한 이유는 무엇인가요?
A2. 원형 큐는 큐의 공간 낭비를 줄이기 위해 사용됩니다. 일반적인 큐는 데이터가 제거될 때 공간이 비게 되지만, 원형 큐는 이 공간을 재활용하여 메모리 사용을 최적화합니다.
해시 테이블 (Hash Table)
해시 테이블은 키-값 쌍을 사용하여 데이터를 저장하고 검색하는 자료구조입니다. 해시 함수(Hash Function)를 사용해 키를 해시 값으로 변환하고, 이를 이용해 데이터를 저장할 위치를 결정합니다.
해시 테이블은 배열 기반의 자료구조로, 해시 함수가 입력된 키를 특정 인덱스로 변환하여 해당 위치에 값을 저장합니다. 충돌(같은 해시 값이 생성되는 상황)이 발생할 수 있으며, 이를 해결하기 위해 체이닝(Chaining)과 오픈 어드레싱(Open Addressing) 같은 방법을 사용합니다.
예상 질문
Q1. 해시 테이블이란 무엇이며, 어떻게 동작하나요?
A1. 해시 테이블은 키-값 쌍을 사용하여 데이터를 저장하는 자료구조입니다. 해시 함수를 통해 키를 특정 인덱스로 변환하고, 이를 이용해 데이터를 빠르게 저장 및 검색할 수 있습니다.
Q2. 해시 충돌이란 무엇이며, 이를 해결하는 방법에는 어떤 것이 있나요?
A2. 해시 충돌은 서로 다른 키가 같은 해시 값을 가지는 경우입니다. 이를 해결하기 위해 체이닝(연결 리스트를 사용해 동일한 해시 값을 연결)과 오픈 어드레싱(빈 공간을 찾아 값을 저장하는 방법) 등의 방법이 있습니다.
트리 (Tree)
트리는 계층 구조를 표현하는 자료구조로, 노드(Node)와 노드 간의 연결인 간선(Edge)으로 이루어져 있습니다. 최상위 노드를 루트 노드라고 하며, 노드가 자식을 가지지 않으면 리프 노드(Leaf Node)라고 합니다.
트리는 다양한 종류가 있으며, 대표적으로 이진 트리(Binary Tree), AVL 트리, B 트리 등이 있습니다. 트리는 계층적 데이터를 표현할 때 많이 사용되며, 파일 시스템, 조직도, 게임의 씬 그래프 등에서 활용됩니다.
예상 질문
Q1. 트리의 기본 구조와 용어에 대해 설명해 주세요.
A1. 트리는 루트 노드를 시작으로 하위 노드가 계층적으로 연결된 구조입니다. 각 노드는 부모 노드와 자식 노드를 가질 수 있으며, 자식 노드가 없는 노드는 리프 노드라고 합니다. 노드 간의 연결을 간선이라고 합니다.
Q2. 이진 트리와 일반 트리의 차이점은 무엇인가요?
A2. 이진 트리는 각 노드가 최대 두 개의 자식 노드(왼쪽, 오른쪽)를 가지는 트리입니다. 반면, 일반 트리는 각 노드가 여러 개의 자식 노드를 가질 수 있습니다.
이진 탐색 트리 (Binary Search Tree, BST)
이진 탐색 트리(BST)는 왼쪽 서브트리의 모든 노드가 루트 노드보다 작고, 오른쪽 서브트리의 모든 노드가 루트 노드보다 큰 성질을 가지는 이진 트리입니다. 이 성질 덕분에 데이터 탐색, 삽입, 삭제가 효율적입니다.
BST의 평균적인 탐색, 삽입, 삭제 시간 복잡도는 O(log n)입니다. 하지만 트리가 편향되면 시간 복잡도가 O(n)까지 증가할 수 있습니다. 이를 방지하기 위해 AVL 트리나 레드-블랙 트리와 같은 균형 이진 탐색 트리를 사용합니다.
예상 질문
Q1. 이진 탐색 트리의 특징과 장점은 무엇인가요?
A1. 이진 탐색 트리는 각 노드의 왼쪽 서브트리에는 더 작은 값이, 오른쪽 서브트리에는 더 큰 값이 위치합니다. 이를 통해 탐색, 삽입, 삭제 시 특정 값을 빠르게 찾을 수 있으며, 평균 시간 복잡도는 O(log n)입니다.
Q2. 이진 탐색 트리가 편향되었을 때 발생하는 문제는 무엇인가요?
A2. 이진 탐색 트리가 편향되면 노드들이 한쪽으로 치우쳐져 있어 리스트처럼 동작하게 됩니다. 이 경우 탐색, 삽입, 삭제 시 시간 복잡도가 O(n)으로 증가해 성능이 저하됩니다.
힙 (Heap)
힙(Heap)은 완전 이진 트리의 형태를 가지는 자료구조로, 최대 힙(Max Heap)과 최소 힙(Min Heap)으로 나뉩니다. 최대 힙은 부모 노드가 자식 노드보다 크거나 같고, 최소 힙은 부모 노드가 자식 노드보다 작거나 같은 성질을 가집니다.
힙은 우선순위 큐를 구현하는 데 사용되며, 삽입과 삭제가 O(log n)의 시간 복잡도를 가집니다. 특히, 힙 정렬(Heap Sort)이나 최댓값, 최솟값을 빠르게 추출해야 하는 상황에서 유용합니다.
예상 질문
Q1. 힙의 구조와 사용 사례를 설명해 주세요.
A1. 힙은 완전 이진 트리로, 최대 힙은 부모 노드가 자식 노드보다 크거나 같고, 최소 힙은 부모 노드가 자식 노드보다 작거나 같습니다. 힙은 우선순위 큐 구현에 사용되며, 삽입과 삭제가 O(log n) 시간 복잡도를 가집니다.
Q2. 힙 정렬(Heap Sort)의 동작 원리는 무엇인가요?
A2. 힙 정렬은 배열을 힙 구조로 만든 후, 루트 노드(최대/최소값)를 추출하고 남은 요소들을 재정렬하는 과정을 반복하여 정렬하는 알고리즘입니다. 시간 복잡도는 O(n log n)이며, 공간 복잡도는 O(1)입니다.
그래프 (Graph)
그래프는 정점(Vertex)과 간선(Edge)으로 이루어진 자료구조로, 정점 간의 관계를 표현하는 데 사용됩니다. 방향성이 있는 그래프(Directed Graph)와 방향성이 없는 그래프(Undirected Graph)가 있으며, 정점과 간선의 연결 방식을 인접 리스트와 인접 행렬로 나타낼 수 있습니다.
그래프는 소셜 네트워크, 지도, 네트워크 라우팅 등 다양한 분야에서 사용됩니다. DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색)는 그래프 탐색을 위한 대표적인 알고리즘입니다.
예상 질문
Q1. 그래프에서 인접 리스트와 인접 행렬의 차이점은 무엇인가요?
A1. 인접 리스트는 각 정점에 연결된 다른 정점들을 리스트로 표현하며, 메모리 사용이 효율적입니다. 반면, 인접 행렬은 정점 간의 연결 관계를 2차원 배열로 표현해 특정 간선의 존재 여부를 O(1) 시간에 확인할 수 있지만, 메모리 사용이 많아집니다.
Q2. 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)의 차이점은 무엇인가요?
A2. DFS는 정점에서 출발해 한 방향으로 깊게 탐색하고, 더 이상 갈 곳이 없을 때 돌아와 다른 경로를 탐색합니다. BFS는 정점에서 출발해 인접한 모든 정점을 먼저 탐색한 후, 그다음 깊이의 정점을 탐색합니다. DFS는 재귀 호출이나 스택을 사용하고, BFS는 큐를 사용합니다.
트라이 (Trie)
트라이(Trie)는 문자열을 저장하고 검색하는 데 최적화된 트리 구조입니다. 각 노드는 문자열의 특정 문자에 해당하며, 공통된 접두사를 공유하는 문자열을 효율적으로 저장할 수 있습니다.
트라이는 문자열 자동 완성, 사전 구현 등에 사용되며, 검색과 삽입의 시간 복잡도는 문자열 길이에 비례하는 O(m)입니다. 여기서 m은 문자열의 길이입니다.
예상 질문
Q1. 트라이는 어떤 경우에 사용되며, 장점은 무엇인가요?
A1. 트라이는 문자열 검색, 자동 완성, 사전 기능 구현에 사용됩니다. 공통 접두사를 공유하는 문자열을 효율적으로 저장할 수 있어, 검색 시 불필요한 탐색을 줄일 수 있는 장점이 있습니다.
Q2. 트라이의 시간 복잡도는 어떻게 되나요?
A2. 트라이에서 문자열을 삽입하거나 검색하는 시간 복잡도는 O(m)이며, m은 문자열의 길이입니다. 이는 문자열의 각 문자를 탐색하거나 삽입하는 과정에 걸리는 시간입니다.
AVL 트리와 Red-Black 트리
AVL 트리와 Red-Black 트리는 자가 균형 이진 탐색 트리(Self-balancing BST)로, 노드의 삽입과 삭제 후에도 트리의 높이를 일정하게 유지하여 최악의 경우에도 O(log n)의 시간 복잡도를 보장합니다.
AVL 트리는 모든 노드의 왼쪽과 오른쪽 서브트리의 높이 차이가 1 이하가 되도록 유지하며, Red-Black 트리는 각 노드에 색상 정보를 추가하여 균형을 유지합니다. Red-Black 트리는 균형을 덜 엄격하게 유지하기 때문에 삽입과 삭제 시 연산이 비교적 빠릅니다.
예상 질문
Q1. AVL 트리와 Red-Black 트리의 차이점은 무엇인가요?
A1. AVL 트리는 높이 균형을 엄격하게 유지하여 탐색이 빠르지만, 삽입과 삭제 시 트리의 균형을 맞추기 위한 회전 연산이 더 많이 필요합니다. Red-Black 트리는 균형을 덜 엄격하게 유지해 삽입과 삭제 시의 연산이 더 빠르지만, 탐색 속도는 AVL 트리에 비해 약간 느릴 수 있습니다.
Q2. AVL 트리와 Red-Black 트리를 사용하는 상황은 각각 언제인가요?
A2. AVL 트리는 탐색이 자주 발생하고 삽입과 삭제가 적은 상황에서 유리하며, Red-Black 트리는 삽입과 삭제가 빈번히 발생하는 경우에 더 효율적입니다.
이중 연결 리스트 (Doubly Linked List)
이중 연결 리스트는 각 노드가 앞 노드와 뒤 노드의 주소를 가지고 있는 자료구조입니다. 이를 통해 양방향으로 탐색이 가능하여, 노드를 앞뒤로 쉽게 추가하거나 삭제할 수 있습니다.
이중 연결 리스트는 단일 연결 리스트에 비해 메모리 사용량이 많지만, 특정 노드의 앞뒤로 데이터를 삽입하거나 삭제할 때 더 효율적입니다. 노드 추가와 삭제는 O(1)의 시간 복잡도를 가지며, 탐색은 O(n)입니다.
예상 질문
Q1. 이중 연결 리스트의 장점과 단점은 무엇인가요?
A1. 이중 연결 리스트는 노드를 양방향으로 탐색할 수 있어, 노드의 삽입과 삭제가 특정 위치에서 효율적입니다. 하지만 단일 연결 리스트에 비해 메모리를 더 많이 사용하며, 각 노드에 추가적인 포인터 공간이 필요합니다.
Q2. 이중 연결 리스트는 어떤 상황에서 유용하게 사용되나요?
A2. 이중 연결 리스트는 양방향 탐색이 필요한 경우, 예를 들어, 브라우저의 뒤로/앞으로 가기 기능이나, 양방향 캐시 구현에서 유용하게 사용됩니다.
서킷 리스트, 순환 리스트 (Circular Linked List)
서킷 리스트는 마지막 노드가 첫 번째 노드를 가리키도록 연결된 형태의 연결 리스트입니다. 단일 서킷 리스트와 이중 서킷 리스트로 나뉘며, 시작과 끝이 연결되어 있어 순환 구조를 가집니다.
서킷 리스트는 순환 구조를 가지기 때문에 리스트의 시작점과 끝을 빠르게 연결할 수 있어, 원형 구조의 데이터를 처리하는 데 유용합니다. 각 노드의 삽입과 삭제는 O(1)의 시간 복잡도를 가지며, 탐색은 O(n)입니다.
예상 질문
Q1. 서킷 리스트의 특징과 사용 사례는 무엇인가요?
A1. 서킷 리스트는 마지막 노드가 첫 번째 노드를 가리키는 순환 구조를 가지며, 리스트의 시작과 끝을 빠르게 연결할 수 있습니다. 이를 통해 원형 큐 구현, 라운드 로빈 스케줄링 등에 사용됩니다.
Q2. 서킷 리스트의 장점은 무엇인가요?
A2. 서킷 리스트는 마지막 노드와 첫 번째 노드를 연결해 리스트의 끝에서 시작으로 이동할 수 있는 장점이 있어, 반복적으로 순회해야 하는 작업에 적합합니다.
해시셋 (HashSet)과 해시맵 (HashMap)
해시셋(HashSet)은 중복되지 않은 요소들을 저장하는 자료구조로, 내부적으로 해시 테이블을 사용해 데이터를 관리합니다. 각 요소는 해시 함수를 통해 고유한 해시 값을 가지며, 이를 통해 빠르게 검색할 수 있습니다.
해시맵(HashMap)은 키-값 쌍을 저장하는 자료구조로, 각 키는 해시 함수를 통해 특정 위치에 저장됩니다. 해시맵은 키를 이용해 값을 빠르게 저장하고 검색할 수 있어, 데이터베이스 인덱스, 캐싱, 데이터 매핑 등에 사용됩니다.
예상 질문
Q1. 해시셋과 해시맵의 차이점은 무엇인가요?
A1. 해시셋은 중복되지 않은 값들을 저장하는 데 사용되며, 값을 직접 저장합니다. 반면, 해시맵은 키-값 쌍을 저장하며, 각 키는 고유한 값을 가지며 이를 통해 특정 값을 검색할 수 있습니다.
Q2. 해시맵의 시간 복잡도는 무엇인가요?
A2. 해시맵의 평균적인 삽입, 삭제, 검색 시간 복잡도는 O(1)입니다. 그러나 해시 충돌이 많이 발생할 경우 최악의 시간 복잡도는 O(n)까지 증가할 수 있습니다.
내용 표 정리
자료구조설명
배열 (Array) | 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 저장. 정적 배열과 동적 배열로 나뉨. |
연결 리스트 (Linked List) | 데이터 요소들이 포인터로 연결된 형태의 자료구조로, 단일 및 이중 연결 리스트가 있음. |
스택 (Stack) | 후입선출(LIFO) 방식을 사용하는 자료구조로, 함수 호출 관리 등에 사용. |
큐 (Queue) | 선입선출(FIFO) 방식을 사용하는 자료구조로, 줄 서기와 같은 상황에 적합. |
해시 테이블 (Hash Table) | 키-값 쌍을 해시 함수를 통해 특정 위치에 저장하여 데이터를 관리하는 자료구조. |
트리 (Tree) | 계층 구조를 표현하며, 노드와 간선으로 구성된 자료구조. |
이진 탐색 트리 (BST) | 왼쪽 서브트리는 작은 값, 오른쪽 서브트리는 큰 값을 가지는 이진 트리. |
힙 (Heap) | 완전 이진 트리 형태를 가지며, 최대/최소 힙으로 나뉨. 우선순위 큐 구현에 사용. |
그래프 (Graph) | 정점과 간선으로 이루어져 정점 간의 관계를 표현. DFS와 BFS로 탐색. |
트라이 (Trie) | 문자열 저장과 검색에 최적화된 트리 구조. 문자열 자동 완성 등에 사용. |
AVL 트리와 Red-Black 트리 | 자가 균형 이진 탐색 트리로, AVL은 엄격한 균형, Red-Black은 덜 엄격한 균형 유지. |
이중 연결 리스트 (Doubly Linked List) | 양방향 탐색이 가능한 연결 리스트로, 앞뒤로 쉽게 추가/삭제가 가능. |
서킷 리스트 (Circular Linked List) | 마지막 노드가 첫 번째 노드를 가리키는 순환 구조의 연결 리스트. |
해시셋 (HashSet)과 해시맵 (HashMap) | 해시셋은 중복 없는 요소 저장, 해시맵은 키-값 쌍 저장. 내부적으로 해시 테이블 사용. |
기억해두면 좋을 각 자료구조 간의 공통점과 차이점 정리
분류자료구조공통점차이점
순차 저장 vs 연결 저장 |
배열 (Array), 연결 리스트 (Linked List) |
둘 다 데이터를 저장하고 관리하는 자료구조임. | 배열은 메모리에 연속적으로 저장되어 인덱스 접근이 O(1) 시간으로 빠르지만, 크기를 변경하려면 새로운 배열을 생성해야 하므로 동적 배열을 사용해야 한다. 연결 리스트는 노드가 포인터로 연결되어 있어 인덱스 접근이 어려워 O(n) 시간이 소요되지만, 특정 위치에 삽입/삭제 시 O(1) 시간에 수행 가능해 크기 조정이 유연하다. |
선입선출 vs 후입선출 |
스택 (Stack), 큐 (Queue) |
둘 다 데이터를 삽입하고 제거하는 자료구조임. | 스택은 후입선출(LIFO) 구조이며, 큐는 선입선출(FIFO) 구조로 데이터 처리 방식이 다르다. |
키-값 저장 | 해시 테이블 (Hash Table), 해시맵 (HashMap) |
둘 다 키를 기반으로 데이터를 저장하고 검색함. | 해시맵은 해시 테이블의 한 구현으로, 자바의 HashMap 클래스와 같은 특정 환경에서 제공되는 자료구조를 의미한다. 둘 다 동일한 원리로 작동하며, 키를 통해 값을 효율적으로 저장하고 검색한다. |
균형 유지 | 이진 탐색 트리 (BST), AVL 트리, Red-Black 트리 |
모두 이진 트리의 일종이며, 정렬된 데이터를 빠르게 탐색할 수 있다. | 이진 탐색 트리는 편향될 수 있어 성능 저하가 발생할 수 있다. AVL 트리는 엄격하게 균형을 유지해 탐색 속도가 빠르지만, 삽입/삭제 시 추가적인 회전 연산이 필요하다. Red-Black 트리는 균형을 덜 엄격하게 유지해 삽입/삭제 성능이 더 빠르며, 실시간 데이터 삽입이 많은 경우에 유리하다. |
우선순위 처리 | 힙 (Heap), 우선순위 큐 |
둘 다 우선순위에 따라 데이터를 처리하는 자료구조이다. | 힙은 완전 이진 트리 구조로, 삽입과 삭제를 O(log n) 시간에 수행하며 최댓값/최솟값을 O(1) 시간에 추출할 수 있다. 우선순위 큐는 힙 외에도 다양한 자료구조로 구현할 수 있지만, 힙을 사용하는 것이 가장 일반적이다. |
계층적 데이터 표현 | 트리 (Tree), 그래프 (Graph), 트라이 (Trie) |
계층 구조를 나타내는 자료구조로, 부모-자식 관계를 표현할 수 있다. | 트리는 루트 노드부터 시작하여 사이클이 없는 구조로 확장되며, 트라이는 문자열 저장에 특화된 트리 구조다. 그래프는 방향성과 사이클을 포함할 수 있는 더 일반적인 구조로, 정점과 간선 간의 복잡한 관계를 표현한다. |
순환 구조 | 서킷 리스트 (Circular Linked List), 트리 (Tree) |
두 자료구조 모두 특정 구조에 맞춰 데이터를 관리한다. | 서킷 리스트는 마지막 노드가 첫 노드를 가리켜 순환 구조를 형성하지만, 트리는 순환 없이 계층 구조만 가진다. |
문자열 저장/검색 최적화 | 트라이 (Trie) | 문자열 검색과 저장을 효율적으로 수행할 수 있다. | 일반 트리보다 공통 접두사를 관리하여 문자열 저장에 특화되어 있다. |
중복 관리 | 해시셋 (HashSet), 해시맵 (HashMap) |
모두 해시 함수를 이용해 중복 관리를 수행한다. | 해시셋은 중복 요소를 허용하지 않지만, 해시맵은 중복된 값을 허용하되 키는 중복되지 않는다. |
'CS > 기술면접' 카테고리의 다른 글
[기술면접] 6. 컴퓨터 구조 : CS 기술면접 대비 자료와 예상 문답 (0) | 2025.05.10 |
---|---|
[기술면접] 5. 데이터베이스 : CS 기술면접 대비 자료와 예상 문답 (0) | 2025.05.10 |
[기술면접] 4. 알고리즘 : CS 기술면접 대비 자료와 예상 문답 (1) | 2025.05.10 |
[기술면접] 2. 네트워크: CS 기술면접 대비 자료와 예상 문답 (0) | 2025.05.10 |
[기술면접] 1. 운영체제: CS 기술면접 대비 자료와 예상 문답 (0) | 2025.05.10 |