트리 4

🎮 [테크레터 2편] 인덱스 Index ?

인덱스라는 말 들어보셨나요? 덱스에 빠져버리고 싶은 마음... 이것이 인덱스? 아닙니다. 오늘 설명드릴 인덱스(Index)는 데이테베이스에서 자주 접할 수 있는 개념입니다! Index 란 말 어디서 들어보셨죠? 인덱스는 책 맨 뒷 편에서 볼 수 있거나 찾아보기 란에서 종종 볼 수 있습니다. 책에서 이런 페이지를 제공하는 이유는 책을 다 읽지 않고도 원하는 정보만 빠르게 찾아서 해당 위치만 읽을 수 있도록 하기 위함입니다. 데이터베이스에서의 인덱스도 마찬가지입니다. 데이터베이스의 인덱스는 검색 속도를 향상시키기 위한 일종의 자료구조입니다. 강아지 정보가 있는 테이블에서 species(종)이 '웰시코기'인 값을 찾는다고 해봅시다. 일반적인 경우에 전체 데이터를 조회하면서 species(종)이 '웰시코기'인 ..

[리트코드/leetcode/python] 102. Binary Tree Level Order Traversal

이 문제는 지난 PreOrder 문제에 이어 Level Order Traversal 문제입니다. Level Order는 말그대로 레벨 순으로 순회를 하는 것인데, 트리에서는 보통 root 노드부터 레벨 1로 시작되고 아래로 내려오면서 level이 증가합니다. 해당 문제에서는 레벨별로 노드를 묶는 것이 관건인데요, 코드를 살펴보면서 설명드리겠습니다. # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right from collections import deque ..

[리트코드/leetcode/python] 589. N-ary Tree Preorder Traversal

주어진 트리배열을 보고 PreOrder 로 출력하는 문제입니다. PreOrder은 아래와 같은 로직을 가지는데요, 부모를 먼저 출력하고, 자식 중에서 왼쪽->오른쪽 순으로 출력하는 로직을 가집니다. PreOrder traversal 말고도 순회 종류에는 크게 4가지가 있습니다. 순회 종류 4가지 (노드 방문 순서에 따라) 전위 순회 (Preorder Traversal) 중위 순회 (Inorder Traversal) 후위 순회 (Postorder Traversal) 레벨 오더 순회(level-order Traversal) 전위 순위는 root -> left -> right 중위 순위는 left -> root -> right 후위 순위는 left -> right -> root 순으로 순회를 하며 root를 ..

그래프 알고리즘 1 - 코딩 테스트에서 자주 등장하는 기타 그래프 이론

'DFS/BFS'와 '최단 경로'에서 다룬 내용도 그래프 알고리즘의 한 유형으로 볼 수 있다. 그래프 알고리즘은 코딩 테스트에서 출제 비중이 낮은 편이지만, 출제되기 때문에 기타 그래프 알고리즘도 살펴볼 필요가 있다. 지금부터 다룰 알고리즘은 앞서 배운 내용에 기반하는데, 예를 들어 크루스칼 알고리즘(Kruskal Algorithms)은 그리디 알고리즘으로 분류되고, 위상 정렬 알고리즘(Topology Algorithms)은 앞서 배운 큐 자료구조 혹은 스택 자료구조를 활용해야 구현할 수 있다. 복습을 해보자면, 그래프란 노드와 간선의 정보를 가지고 있는 자료구조이고, 알고리즘 문제에서 '서로 다른 개체가 연결되어 있다'는 얘기가 있다면 가장 먼저 그래프 알고리즘을 떠올려야 한다. 더불어, 그래프 자료구..

반응형