본문 바로가기

Tree

(3)
[Easy] 226. Invert Binary Tree / 구글 코딩 테스트 기출 문제 이번 문제는 구글 코딩 테스트로 굉장히 유명한 문제이다. 이 문제가 유명해진 데에는 한 가지 이유가 있다. 맥(Mac)을 사용하는 개발자라면 누구나 사용해 봤을 법한 Homebrew (MacOS 패키지 관리자)를 개발한 사람으로 유명한 Max Howell은 2015년 구글과 입사 면접을 보는데, 면접 문제에서 binary tree를 invert하는 문제가 나왔지만 결국 풀지 못해 면접에서 떨어지게 된다. 그 후에 Max Howell은 자신의 트위터에 "구글: 90%의 구글 엔지니어들은 네가 개발한 소프트웨어를 사용하지만, 너는 binary tree invert하는 것도 화이트보드에 풀지 못하기 때문에 꺼져라" 와 같은 글을 올리며 자신은 굉장히 많은 사람들이 사용하는 소프트웨어를 개발했지만 고작 코딩 테..
[Lecture 13] B-Tree / B-트리 #B-Tree Intro 전산학에서 B-트리(B-tree)는 데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의 일종으로, 이진 트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 트리 구조이다. 쉽게 말해 다방향 탐색 트리이다. 대용량의 파일을 효율적으로 검색하고 갱신하기 위해 고안된 트리 형태의 자료 구조이다. 방대한 양의 저장된 자료를 검색해야 하는 경우 검색어와 자료를 일일이 비교하는 방식은 비효율적이다. B-트리는 자료를 정렬된 상태로 보관하고, 삽입 및 삭제를 대수 시간으로 할 수 있다. 대부분의 이진 트리는 항목이 삽입될 때 하향식으로 구성되는 데 반해, B-트리는 일반적으로 상향식으로 구성된다. n개의 키 (s1,s2,s3...,sn)가 있는 한 노드를 ..
[Easy] 100. Same Tree Leetcode 100번 문제는 이진 트리 문제이다. 2개의 이진 트리의 root가 주어진다. 두 개의 이진 트리가 똑같은지 알아내는 문제이다. 여기서 똑같다는 정의는 트리의 형태가 같고 모든 노드의 값들도 같아야 한다. #풀이 class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if (q == null && p == null){ return true; } if(q != null && p == null || q == null && p != null){ return false; } if(p.val != q.val){ return false; } return isSameTree(p.left, q.left) && isSameTree(p.r..