| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- IAM
- AZURE
- ebs
- DevOps
- leetcode
- ansible
- EC2
- Python
- Service
- RBAC
- Django
- K8S
- asgi
- Kubernetes
- AZ-900
- Deployment
- POD
- kernel
- FastAPI
- terraform
- Network
- AZ-104
- AWS
- Role
- IAC
- cpu
- 자바스크립트
- elasticsearch
- asyncio
- docker
- Today
- Total
목록leetcode (33)
궁금한게 많은 개발자 노트
Binary Search Tree가 주어졌을 때, 한 노드를 제거하고 재배치한 BST를 반환하는 문제입니다. 여러 경우의 수가 있지만, 우선 한 노드를 삭제할 때 기본적인 규칙은 다음과 같습니다. 삭제할 노드의 자식 중 한쪽 노드만 존재하는 경우, 삭제할 노드 위치를 해당 노드로 변경 삭제할 노드의 자식 둘 다 존재하는 경우, 왼쪽 자식 노드를 삭제할 노드로 대체한다고 하면 왼쪽 자식 노드의 오른쪽 노드를 삭제할 노드의 오른쪽 자식의 가장 왼쪽 자식에 추가해주는 로직이 필요 (반대의 경우도 가능) 아래 링크를 참고하면 이해에 도움이 될 것 같습니다. https://leetcode.com/problems/delete-node-in-a-bst/solutions/1591176/c-simple-solution-..
막대의 높이가 담긴 배열이 주어졌을 때, 두 막대와 x축으로 담기는 물의 최대 양을 구하는 문제입니다. two pointer문제로 이차원 배열에서 시간 초과가 발생하는 문제를 해결합니다. 두 포인터 중 작은 쪽의 포인터를 변경하고, 넓이 구할 시 가로는 포인터 사이 거리이고, 높이는 작은 막대로 구합니다. #define max(a,b)((a) > (b) ? (a) : (b)) #define min(a,b)((a) > (b) ? (b) : (a)) class Solution { public: int maxArea(vector& height) { int answer = 0; int i = 0; int j = height.size() - 1; while (i < j) { if (height[i] < heigh..
Binary Tree가 주어졌을 때, level order로 순회하는 순서를 반환하는 문제입니다. BFS(Breadth-First-Search)로 접근하여 최상위 노드부터 넣고 자식들을 순서대로 넣으면서 level order로 순회합니다. /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, Tree..
Binary Tree가 주어졌을 때, 해당 트리가 균형 잡힌 트리인지를 확인하는 문제입니다. 균형 잡힌 트리는 서로 다른 노드를 루트 노드로 하는 서브 트리 사이에 높이 차이가 1이하인 노드들로 구성된 트리를 의미합니다. 마찬가지로 재귀를 이용하여 left, right child로 시작하는 서브 트리의 균형 여부를 확인하고, 해당 노드의 균형 여부는 각 left, right child subtree의 depth를 구하여 판단합니다. /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(n..
Binary Tree가 주어졌을 때, root에서 leaf node까지 가장 짧은 경로의 길이를 구하는 문제입니다. 재귀를 이용하여 해당 노드가 NULL이면 0을 반환하고 left, child중 짧은 길이를 반복적으로 반환하면서 해를 구합니다. 이 때 left나 right child중 하나 이상 NULL이면 최소값이 0으로 되므로 조건문으로 큰 값이 포함되도록 해줍니다. 둘 다 NULL이 아닐 때는 둘 중 작은 값, 하나 이상 NULL 이면 1 이거나 값이 있는 것을 반환 하도록 합니다. (자식 한쪽만 값이 있는 경우 해당 노드는 leaf가 아니므로 leaf의 값을 가져가야 함) /** * Definition for a binary tree node. * struct TreeNode { * int val..