일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리소스모니터링
- 힙덤프
- 스택
- priority_queue
- date
- Union-find
- html
- GC로그수집
- 스프링부트
- scanner
- BFS
- JPA
- List
- Calendar
- dfs
- string
- union_find
- javascript
- map
- Java
- 큐
- CSS
- spring boot
- math
- NIO
- deque
- sql
- Properties
- set
- alter
- Today
- Total
목록전체 글 (302)
매일 조금씩
[전체 목차]IoC 컨테이너와 빈스프링 IoC 컨테이너와 빈스프링 IoC 컨테이너빈IoC 컨테이너를 사용하는 이유는?핵심 인터페이스 (BeanFactory)@Repository, @Service와 같은 어노테이션으로 왜 빈으로 등록하는가? 왜 IoC 컨테이너가 관리하게 했는가?Repository 객체를 만드는 비용이 비싼 이유는?의존성 주입을 받지 않는 경우, 단위테스트가 힘든 이유는?ApplicationContextIoC 컨테이너에 중요한 인터페이스Resource / Validation데이터 바인딩SpEL스프링 AOPNull-Safety Inversion of Control: 의존 관계 주입 (Dependency Injection)이라고도 하며,어떤 객체가 사용하는 의존 객체를 직접 만들어 사용..

배열이 두가지가 주어지고, 두가지 배열이 뭔지 알려준 뒤, 트리를 만들라고 한다.모든 노드의 value는 유니크 하다고 한다. preorder, inorder 이렇게 두가지가 주어지는데, 분석을 해봤을때, 두 트리의 특성은 다음과 같다.preorder: 트리를 위 레벨에서 아래 레벨 순서로 null이 아닌 노드의 value들을 담은 배열inorder: 트리를 왼쪽 노드에서 오른쪽 노드로 null이 아닌 노드의 value들을 담은 배열preorder의 단점은 노드가 어느 노드의 자식으로 붙어야하는지 모른다는 것이고,inorder의 단점은 특정 요소를 하나 찍었을 때, 그보다 왼쪽에 있는 것들이 트리 상 왼쪽이라는 것만 알지, 부모인지, 자식인지, 같은 레벨의 left인지 등 알수 없다는 것이다. 그럼 이 ..

트리와 서브 트리가 주어지고, 서브 트리가 트리 내에 있는지 찾는 문제다.트리 내부에 서브 트리와 일치하는 부분이 있어야 하는데 그 부분 밑에 딸린 자식이 없어야한다. 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 자식 노드 합 + 자기 자신..