본문 바로가기

분류 전체보기121

[Algorithm][Tree][Java] 문제 풀이 #26 - 102. Binary Tree Level Order Traversal 문제 링크 https://leetcode.com/problems/binary-tree-level-order-traversal/ 내 코드 List resultList = new ArrayList(); public List levelOrder(TreeNode root) { List list = new ArrayList(); list.add(root); if(root != null) recursion(list); return resultList; } private void recursion(List list) { if(list.size() == 0) return; List childList = new ArrayList(); List result = new ArrayList(); for(TreeNode node.. 2022. 8. 22.
[Algorithm][Tree][Java] 문제 풀이 #25 - 124. Binary Tree Maximum Path Sum 문제 링크 https://leetcode.com/problems/binary-tree-maximum-path-sum/ 내 풀이 int max = Integer.MIN_VALUE; public int maxPathSum(TreeNode root) { if(root.left == null && root.right == null) return root.val; recursion(root); return max; } private void recursion(TreeNode node) { if(node == null) return; if(node.left == null && node.right == null) return; int leftVal = node.left != null ? node.left.val : .. 2022. 8. 21.
[Algorithm][Tree][Java] 문제 풀이 #24 - Same Tree 문제 링크 https://leetcode.com/problems/same-tree/ 내 풀이 public boolean isSameTree(TreeNode p, TreeNode q) { return recursion(p, q); } private boolean recursion(TreeNode p, TreeNode q) { if(p == null && q == null) return true; else if(p == null || q == null) return false; else if(p.val != q.val) return false; return recursion(p.left, q.left) && recursion(p.right, q.right); } 결과 같은 트리 값을 가지고 있는지 확인하는 .. 2022. 8. 19.
[자료구조] Priority Queue는 뭔가요? Queue만 쓰면 안되나요? Queue도 List처럼 LinkedList(조회 보다는 수정에 효율이 좋은 자료 구조), 기본 구조(FIFO)를 바탕으로 특수한 상황에 맞춰 사용할 수 있도록 추가적인 자료구조를 찾아 볼 수 있습니다. ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue DelayQueue LinkedTransferQueue SynchronousQueue ConcurrentLinkedQueue ... 여러가지가 있겠지만 제가 주로 사용하던 자료구조를 들고 왔습니다. -> PriorityQueue 사용 이유는 즉슨 데이터가 들어가는 순간 Queue 내부에서 기본 우선순위(작은값 >>> 큰값)를 따라 정렬이 이루어 집니다. Priority.. 2022. 8. 18.