일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 투포인터
- medium
- Blazor
- 자연어처리
- stratascratch
- nlp
- 생성형AI
- SQL
- 파이썬알고리즘
- two-pointer
- 구글퀵랩
- 코드업
- 파이썬
- Python
- 슬라이딩윈도우
- 파이썬기초100제
- slidingwindow
- dfs
- GenerativeAI
- 알고리즘
- GenAI
- Microsoft
- 리트코드
- Python3
- 릿코드
- 니트코드
- codeup
- gcp
- LeetCode
- sql코테
- Today
- Total
목록2025/03/17 (3)
Tech for good

https://neetcode.io/problems/binary-tree-right-side-view NeetCode neetcode.io첫번째 풀이 방법: BFS - Level Order Traversal각 레벨에서 가장 오른쪽에 있는 노드의 값만 저장하면 된다.BFS(너비 우선 탐색, Queue;)을 이용하여 레벨별 탐색을 수행한다.매 레벨의 마지막 노드 값을 결과 리스트에 추가한다.# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right =..

# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def mergeTrees(self, root1: Optional[TreeNode], root2: Optional[TreeNode]) -> Optional[TreeNode]: if not root1: # root1이 None이면 root2 반환 return root2 if not root2: # ro..

완전 이진 트리(Complete Binary Tree)의 노드 개수를 세는 문제이며, 최적화된 방법을 사용하여 O(n)보다 빠른 시간 복잡도로 해결해야 한다.완전 이진 트리는 왼쪽부터 차곡차곡 채워지는 성질이 있기 때문에, 일반적인 트리 탐색(O(n))이 아니라, 이진 탐색을 활용한 O(log n * log n) 알고리즘을 사용할 수 있다.완전 이진 트리는 모든 레벨이 가득 차 있으며, 마지막 레벨은 왼쪽부터 채워진 상태이다.즉 왼쪽 서브트리의 높이와 오른쪽 서브트리의 높이가 같다면, 트리가 완전하게 채워진 형태라는 뜻이다. 다시 말해, 전체 노드 개수 == 꽉 찬 부분(완전한 트리) + 마지막 레벨의 노드 개수이다.이렇게 노드가 모두 꽉 차 있는 완전 트리의 경우, 개수를 구하는 공식은 아래와 같다. ..