문제출저 https://settembre.tistory.com/350 [백준/자바] 1806 부분합 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. settembre.tistory.com 소스코드 package studyGroup.June.june14; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; /* 투포인터 */ public class 백준1806번부분합 { static ..
목차 경로표현식 개요 경로표현식이란 점을 찍어 객체 그래프를 탐색하는 것 입니다. 경로표현식은 3가지 방법이 있습니다. 경로표현식은 내부적으로 동작하는 방식이 달라집니다. select m.username -> 상태 필드로 객체 그래프를 탐색 from Member m join m.team t -> 단일 괎 연관 필드 (엔티티 연관) join m.orders o -> 컬렉션 값 연관 필드(양방향 연관) where t.name = 'teamA' 경로표현식의 3가지 방법과 특징 경로표현식은 상태 필드, 단일 값 연관필드, 컬렉션 값 연관 필드가 있습니다. 상태 필드(state field) 단순히 값을 저장하기 위한 필드 경로 탐색의 끝입니다. m.username 일 경우 username에서 점을 찍고 탐색할 것..
문제출저 https://www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 소스코드 package studyGroup.June.june13; import java.util.*; import java.lang.*; import java.io.*; /* 유니온파인드드 반례 4 4 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 3 1 2 4 */ public class 백준1976번여행가자 { static int n; // 도시의 수 static int m..
목차 JPA 개요 JPA는 Java Persistence API의 줄임말입니다. JPA는 자바 진영에 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음 입니다. 인터페이스의 모음이라 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크입니다. JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있습니다. ORM 개요 ORM은 Object Relational Mapping의 줄임말입니다. 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻으로 기술적으로는 애플리케이션의 객체를 RDB 테이블에 자동으로 영속화를 해줍니다. 장점 SQL문이 아닌 Method를 통해 DB를 조작할..
문제출저 https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 소스코드 class Solution { public int solution(int[][] triangle) { int answer = 0; int n = triangle.length; for(int i = 1; i < n; i++) { int m = triangle[i].length; for(int j = 0; j < m; j++) { if(j == 0) triangle[i][j] += triangle[i-1][j]; else ..
목차 트랜잭션 개요 트랜잭션이란, 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 뜻 합니다. 데이터베이스의 상태를 변화시킨다는 것은 아래의 질의어(SQL)을 통해 데이터베이스로 접근 하는 것을 의미합니다. SELECT INSERT DELETE UPDATE 작업의 단위는 질의어 한문장이 아니라는 것을 명심해야 합니다. 작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미합니다. (예를 들어, 게시판 글을 작성하면 게시판으로 가는 기능은 INSERT와 SELECT가 합친 SQL입니다. 이러한 작업단위를 하나의 트랜잭션이라 합니다.) 트랜잭션 설계를 잘하는 것이 데이터를 다루는 것에 많은 이점을 줍니다. 트랜잭션 특징 트랜잭션의 특징은 크게 4가지가 있습니다. 원자성(A..
문제출저 https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 소스코드 package studyGroup.June.june10; import java.util.*; import java.io.*; import java.lang.*; /* 어디서 시작되는지는 모른다. */ public class 백준2098외판원순회 { static int n; // 도시의 수 static int[][] board; static i..
문제출저 https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 소스코드 package studyGroup.June.june9; import java.util.*; import java.io.*; public class 백준11054가장긴바이토닉부분수열 { static int n; static int[] board; public static void main(String[] args) throws IOException { BufferedReader br = new Buf..
목차 영속성 컨텍스트 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이라는 뜻 입니다. 에플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 합니다. 엔티티 메니저를 통해 엔티티를 저장하거나 조회하면 엔티티 메니저는 영속성 컨텍스트에 엔티티를 보관하고 관리합니다. // 엔티티 메니저를 사용해 회원 엔티티를 영속성 컨텍스트에 저장 em.persist(member); 영속성 컨텍스트의 특징 엔티티 매니저를 생성할 때 하나 만들어 집니다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근하고 관리할 수 있습니다. 엔티티의 생명주기 비영속(new / transient) : 영속성 컨텍스트와 전혀 관계가 없는 상태 영속(managed) : 영속성 컨텍스트에 저장된 상태 준영속(detach..
목차 필터(Filter) 필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공합니다. 디스패처 서블릿은 스프링의 가장 앞단에 존재하는 프론트 컨트롤이므로, 필터는 스프링 범위 밖에서 처러가 되는 것 이다. 즉, 스프링 컨테이너가 아닌 톰캣과 같은 웹 컨테이너에 의해 관리가 되는 것이고 (스프링 빈으로 등록이 됩니다), 디스패처 서블릿 전/후에 처리하는 것입니다. 인터셉터(Interceptor) 인터셉터(Interceptor)는 J2EE 표준 스펙인 필터와 달리 Spring이 제공하는 기술로써, 디스패처 서브릿이 컨트롤러를 호출하기 전과 후에 요청과 응답을..
문제출저 https://programmers.co.kr/learn/courses/30/lessons/1838 코딩테스트 연습 - 몸짱 트레이너 라이언의 고민 4 5 [[1140,1200],[1150,1200],[1100,1200],[1210,1300],[1220,1280]] 4 programmers.co.kr 소스코드 import java.lang.reflect.Array; import java.util.*; import java.lang.*; import java.io.*; /* 투포인터를 이용해서 사용하는 사람이 가장 많을 때의 사람 수를 구한다. (다른 블로그 풀이에서는 배열을 이용해서 풀었다.) 이제 n * n 격자에 k명의 사람을 배치할 때 유지 가능한 최대 간격을 구하는 문제를 풀면 된다. 각..
문제출저 https://www.acmicpc.net/problem/10800 10800번: 컬러볼 첫 줄에는 공의 개수를 나타내는 자연수 N이 주어진다(1 ≤ N ≤ 200,000). 다음 N개의 줄 중 i번째 줄에는 i번째 공의 색을 나타내는 자연수 Ci와 그 크기를 나타내는 자연수 Si가 주어진다(1 ≤ Ci ≤ N www.acmicpc.net 소스코드 package studyGroup.June.june6; import java.util.*; import java.lang.*; import java.io.*; /* https://moonsbeen.tistory.com/376 누적합, 투포인터 반례 입력) 10 1 10 1 10 2 10 3 10 1 9 1 8 1 7 2 3 3 1 3 1 정답) 5 5..