일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 힙덤프
- union_find
- Union-find
- NIO
- date
- GC로그수집
- sql
- alter
- JPA
- List
- 큐
- html
- 스택
- deque
- Calendar
- dfs
- string
- 리소스모니터링
- 스프링부트
- map
- CSS
- Properties
- math
- priority_queue
- scanner
- BFS
- javascript
- Java
- set
- spring boot
- Today
- Total
목록2024/10 (49)
매일 조금씩
트리와 서브 트리가 주어지고, 서브 트리가 트리 내에 있는지 찾는 문제다.트리 내부에 서브 트리와 일치하는 부분이 있어야 하는데 그 부분 밑에 딸린 자식이 없어야한다. 1) BFS 풀이/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = ..
TreeNode 객체로 root 가 주어지면 주어진 두 메서드를 완성해서 serialize, deserialize 하여 입력 그대로의 root를 리턴하는 문제이다. serialize 메서드는 String을 리턴해야해서 TreeNode를 돌며 노드를 String으로 붙여나가야하는데String의 +보다 StringBuilder의 append()를 써서 붙여나가는 것이 훨~~~씬 더 빠르다.String으로 + 하면서 붙이면 그때그때 계속 객체를 생성해야하기 때문.. deserialize 메서드는 String을 받아서 TreeNode를 리턴해야한다. serialize, deserialize 둘 다 Queue를 사용했다. /** * Definition for a binary tree node. * public c..
queue를 사용해서 풀면 되는 문제였다. /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */class Solution { public Lis..
어떻게 풀어야할지 모르겠었던 문제. 리프 노드부터 돌며,현재 노드를 최고 높은 루트 노드로 하여 순회한다고 할 때의 최댓값을 구하면 된다. 아래 두가지를 생각했다. 1) 재귀식과 리턴값 정하기그럼 재귀식이 필요한데.재귀식이 return 하는 값은 현재 노드까지의 최대값을 리턴하면 된다.그 값은 ~자식 노드가 left, right 두개이니,left 자식 노드까지의 값 (leftSum)right 자식 노드까지의 값 (rightSum)두 값 중 최대값에 현재 노드(root)의 value를 더한값을 리턴하면 된다. 2) 전체 최댓값 갱신 어떻게 할지 정하기그리고 매 root 마다,위 값 말고 현재 노드(root)가 최상위 노드가 될 경우에 대한 값(left 자식노드 합 + right 자식 노드 합 + 자기 자신..
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */class Solution { public TreeNode invertTree(TreeNod..
같은 트리인지를 판별하는 아주 기본적인 문제이다. /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */class Solution { public..