반응형

Interview/Data Structure 2

[자료구조 면접 준비] 트라이 (Trie)

트라이(Trie) 문자열에서 검색을 빠르게 도와주는 자료구조이다. 정수형에서 이진탐색트리를 이용하면 시간 복잡도는 O(logN)이 나오게 된다. 문자열에서 적용했을 때, 문자열의 길이만큼 탐색을 진행해야 하기 때문에 길이를 M이라 하면 O(M*logN)이 걸리게 된다. 하지만 트라이 자료구조를 사용하게 된다면 시간복잡도를 O(M)에 끊을 수 있다. 다음 문자열 집합 {"rebro", "replay", "hi" , "high", "algo"} 를 트라이로 구현한 것이다. 그림에서 보면 알수 있듯이 문자열의 접두사에 대응되는 노드는 서로 연결된 트리이고 빨간 노드는 문자열의 끝을 의미한다. 트라이의 중요한 속성 중 하나는 root에서 내려가는 경로에서 만나는 글자들을 모으면 찾고자 하는 문자열의 접두사를 얻..

[자료구조 면접 준비] 연결 리스트 (Linked List)

Linked List 노드(Node)라는 개별적인 단위로 저장되는 자료구조이며, 각 노드는 데이터와 다음 노드를 가리키는 포인터(Link)로 구성됩니다. 간략적인 노드 구현은 다음과 같습니다. class Node { int data; Node next; public Node(int data) { this.data = data; this.next = null; } } Linked List 사용하는 이유가 무엇인가요? 크기가 동적으로 변하는 데이터를 관리하기 위해 사용이 됩니다. 그리고 데이터의 삽입과 삭제가 용이하고, 메모리를 유연하게 활용할 수 있습니다. 이 자료구조의 장점과 단점을 각각 말해주세요. 장점으론 데이터 삽입 및 삭제가 효율적으로 이뤄지고 동적으로 변하는 데이터를 저장할 수 있습니다. 단점으..

반응형