[카테고리:] 자료구조
[기술 면접] 11. 정렬 알고리즘에서 안정성(Stability)에 대해 아시나요?
저번 시간에 이어, 이번엔 정렬 알고리즘의 안정성(Stability)에 대한 질문을 간단하게 준비했습니다. 이번 질문은 자주 등장하는 편은 아니지만, 기초 개념이라고 생각하고 준비하시길 권해드립니다. Q: 정렬 알고리즘에서 안정성(Stability)에 대해 아시나요? 같은 키를 가진 객체들의 상대적인 순서가, 정렬 이후에도 유지되는 것을 말합니다. 안정 정렬과 불안정 정렬로 구분 되는데, 마치며 이번 시간에는 정렬 알고리즘의 안정성(Stability)에 대한 질문을 짧게 알아보는…
[기술 면접] 10. 트라이(Trie) 자료구조에 대해서 알고 계신가요?
저번 시간에 이어, 이번엔 트라이(Trie) 자료구조에 대한 질문을 알아보도록 하겠습니다. 트라이(Trie) 자료구조는 문자열과 관련된 문제를 해결할 수 있는지, 해당 자료구조에 대한 이해를 확인하는 질문입니다. 출제 빈도가 높진 않지만, 중요한 자료구조이니 숙지하고 가시길 권해드립니다. Q: 트라이(Trie) 자료구조에 대해서 알고 계신가요? 트리 자료구조 중 하나로 문자열을 저장하고 탐색하는 데 유용한 자료구조입니다. 각 노드는 Key와 Value로 구성 되는…
[기술 면접] 9. 퀵소트(Quick Sort)에 대해 설명해주세요
저번 시간에 이어, 이번엔 퀵소트(Quick Sort)에 대해 알아보겠습니다. 퀵소트는 정렬 알고리즘 중 하나로, 면접 빈출도가 높은 내용은 아니지만, 등장한 이력이 있긴 해서 준비해보았습니다. Q: 퀵소트(Quick Sort)에 대해 설명해주세요 퀵소트는 정렬 알고리즘 중 하나로, 피벗(Pivot)을 기준으로 부분 배열로 나누고, 각 부분 배열을 정렬한 이후 합치는 과정을 거칩니다. 어떤 피벗을 선택하느냐에 따라 성능이 달라질 수 있습니다. Q:…
[기술 면접] 8. Hash table은 어떤 자료구조인가요?
저번 시간에 이어, 이번엔 Hash table은 어떤 자료구조인지와 Collision 시 해결 방법에 대해 알아보겠습니다. 이번 시간은 자료구조 개념 중에 정말 중요하다고 할 수 있는 부분입니다. 서비스 플랫폼 기업 K사와 L사에서 마주한 기억이 있습니다. Q: Hash table은 어떤 자료구조인가요? 효율적인 탐색(빠른 탐색)을 위한 자료구조로 key-value쌍의 데이터를 입력받습니다. hash function h에 key값을 입력하여 얻은 해시값 h(k)를 위치로…
[기술 면접] 7. BST(Binary Search Tree), 이진 탐색 트리는 어떤 자료구조인가요?
저번 시간에 이어, 이번에는 BST(Binary Search Tree, 이진 탐색 트리)에 대해 알아보겠습니다. 자료구조 질문들 중엔, 상대적으로 난이도가 높은 편에 속하는 개념이며, 빈출 빈도는 조금 낮은 편에 속합니다. 하지만, 종종 마주한 경험이 있으니, 이번 기회에 정리해 보시길 권해드립니다. Q: BST(Binary Search Tree, 이진 탐색 트리)는 어떤 자료구조인가요? 이진 탐색트리는 정렬된 tree입이니다. 어느 node를 선택하든 해당 node의…
[기술 면접] 6. 트리 자료구조에 대해 설명해 주세요
저번 시간에 이어, 이번엔 트리(Tree) 자료구조에 대해 알아보겠습니다. Q: 트리 자료구조에 대해 설명해 주세요 노드와 간선들로 이루어진 자료구조로, 사이클이 없는 자료구조입니다. 즉, 루트에서 한 노드로 가는 경로는 유일합니다. Q: 트리와 그래프의 차이가 무엇인가요? 사이클의 유무입니다. 그래프는 노드, 간선으로 이루어진 자료구조로 방향과 무방향이 존재하며, 트리는 그래프의 한 종류로써 방향성 있는 비순환 그래프입니다. Q: 완전 이진 트리와…
[기술 면접] 5. Stack은 어떤 자료구조인가요?
저번 시간에 이어, 이번에는 스택(Stack) 자료구조에 대해 알아보겠습니다. Stack은 Queue와 비교되며 나오는 개념이긴 하지만, Queue에 비해 상대적으로 적게 나오는 편입니다. 중요하긴 해도 Queue만큼의 질문 범위가 넓진 않다고 할 수 있죠. 어렵지 않으니 간단하게 알아보고 넘어가도록 합시다. Q: Stack은 어떤 자료구조인가요? 후입선출 LIFO(Last In First Out)의 자료구조입니다. push, pop 모두 O(1)의 시간복잡도를 가지며 후위 표기법 연산,…
[기술 면접] 3. Linked List에 관해서 설명해 주세요.
저번 시간에 이어 Linked List는 배열과 같은 기능을 하는 것으로 보이지만, 내부 구조와 작동 방법이 다릅니다. 이번 시간엔 Linked List의 특징과 Array와 다른 점이 무엇인지 알아보겠습니다. Q: Linked List에 관해서 설명해 주세요. Node라는 구조체로 이루어져 있는데, Node는 데이터 값과 다음 Node의 address로 구성됩니다. Linked List는 물리적인 메모리상에서는 비연속적으로 저장 되지만, 각각의 Node가 다음 Node의 address를 가리킴으로써 논리적인 연속성을…
[기술 면접] 2. Dynamic Array는 어떤 자료구조인가요?
Dynamic Array는 Run time 도중에 크기를 조절하여 데이터 구조의 유연성과 필요에 따른 메모리 관리를 가능하게 합니다. 데이터의 추가, 삭제, 재배치를 효율적으로 수행할 수 있어, 다양한 상황에서 사용됩니다. 이번 포스팅은 동적 배열에 대해 알아봅니다. Q : Dynamic Array는 어떤 자료구조인가요? Array의 경우 size가 고정되었기 때문에 선언 시에 설정한 size보다 많은 갯수의 data를 저장할 수 없습니다. 하지만,…