본문 바로가기

java40

[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.
[Algorithm][Recursion] 문제 풀이 #23 - Rotate Image 문제 링크 https://leetcode.com/problems/rotate-image/ 내 풀이 public void rotate(int[][] matrix) { int childLength = matrix[0].length; int[][] result = new int[matrix.length][childLength]; for(int i = 0; i < matrix.length; i++) { for(int j = 0; j < childLength; j++) { result[i][childLength - j - 1] = matrix[j][i]; } } for(int i = 0; i < matrix.length; i++) { for(int j = 0; j < childLength; j++) { matri.. 2022. 8. 13.
[Algorithm][Recursion] 문제 풀이 #22 - Kth Smallest Element in a Sorted Matrix 문제 링크 https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/ 풀이 public int kthSmallest(int[][] matrix, int k) { int childLength = matrix[0].length; int[] tmp = new int[matrix.length * childLength]; int count = 0; for(int i = 0; i < matrix.length; i++) { for(int m : matrix[i]) { tmp[count++] = m; } } Arrays.sort(tmp); return tmp[k - 1]; } 결과 문제는 2중 배열에서 k 번째 작은 값을 구하는 문제였습니다. 처음에는.. 2022. 8. 13.