전체 글 94

영속성 컨텍스트 1

JPA에서 가장 중요한 2가지객체와 RDB 매핑하기영속성 컨텍스트  영속성 컨텍스트엔티티를 영구저장하는 환경이라는 뜻이다.EntityManager.persist(entity) 를 통해서 DB에 저장하는게 아니다Entity를 영속성 컨텍스트에 저장하는 것이다.영속성 컨텍스트는 논리적인 개념으로, 눈에 보이지 않는다.엔티티매니저를 통해서 영속성 컨텍스트에 접근한다.   엔티티의 생명주기비영속(new/transient) 영속성 컨텍스트랑 전혀 관계가 없는 새로운 상태위 예시는 Member 객체만 생성하고 EntityManager에 아무것도 넣지 않은 상태이므로 JPA와 상관 없는 상태이다. 영속(managed) 영속성 컨텍스트에 의해 관리되는 상태persist 메서드에 의해 EntityManager 안으로 들..

최대점수 구하기 (냅색 알고리즘)

import java.util.Scanner; public class Main06 { //냅색 알고리즘 public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int m = kb.nextInt(); int[] dynamic = new int[m+1]; for(int i=0; i=time; j--) { //앞에서부터 돌면 중복 //뒤에서부터 돌아야 중복 회피 dynamic[j] = Math.max(dynamic[j], dynamic[j-time]+score); } } System.out.println(dynamic[m]); } }

BufferedReader로 입력 받을 때 NPE 방지하기

https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 최근 이 문제를 풀었고, 코드가 분명 이클립스 IDE에서는 잘 돌아갔는데 제출만 하면 RuntimeError - NullPointerException이 떴다. 죽어라 봐도 모르겠어서 결국 다른 분 블로그의 답을 확인했는데, 다른 부분은 전부 같고 //내 코드 if (temp.equals("") || temp == null) { // temp가 null이거나 빈 문자열인 경우 실행될 코..

Tree, BinaryTree

트리 (Tree) Tree 구조는 계층적인 구조를 표현할 수 있는 자료구조이다. Tree 구조는 루트 노드에서 시작하여 여러개의 하위 노드들이 연결된 형태로 구성되며, 각 노드는 각자의 하위 노드들을 가질 수 있다. Java에서는 Tree 구조를 구현하기 위해 다음의 인터페이스와 클래스들을 사용한다. 아래 인터페이스와 클래스들은 중복값을 허용하지 않는다. 사용 인터페이스 java.util.Set Tree 구조를 구현하기 위한 인터페이스로, 이 인터페이스를 implements 하는 클래스들은 모두 Tree 구조를 갖는다. java.util.SortedSet Set 인터페이스를 상속받으며, 정렬된 Tree 구조를 표현하기 위한 인터페이스이다. 사용 클래스 java.util.TreeSet SortedSet 인..

PriorityQueue

PriorityQueue (우선순위 큐)는 우선순위에 따라 정리되어 있으며, 우선순위가 가장 높은 요소에 먼저 접근할 수 있는 자료구조이다. PriorityQueue 의 구현을 위해서는 Heap 이 사용된다. PriorityQueue는 기본적으로 Min Heap을 사용한다. 가장 높은 우선순위를 갖는 요소는 root 노드에 위치하게 된다. 이에 따른 요소의 추가와 삭제 과정은 다음과 같다. 추가 과정 새로운 요소를 Heap의 마지막 노드에 위치시킨다. 부모노드와 비교하며 적절한 위치에 배치한다. 삭제 과정 우선순위가 제일 높은 요소를 뽑는다. (root 노드) 이후 Heap의 마지막 노드를 root 노드의 위치로 이동시킨다. 자식노드와 비교하며 적절한 위치에 배치한다. PriorityQueue 클래스 메..

[백준 1021] 회전하는 큐

https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net Deque 자료구조를 이용하면 풀기 수월하다. 연산 횟수를 세는 경우는 오른쪽으로 한 칸씩 미는 경우와 왼쪽으로 한 칸씩 미는 경우 두 가지이다. 한 칸씩 이동하는 이유는 Deque의 첫 번째 값을 뽑아내는 1번 연산을 하기 위함이다. 찾고자 하는 숫자의 처음 Deque에서의 위치가 주어지면 두 가지 경우로 나뉜다. 오른쪽으로 한 칸씩 밀어가며 숫자를 첫 번째 값으로 위치시킬 것인지 왼쪽으로 ..

[Solved]/BOJ 2023.03.31