목록전체 글 (323)
코드와이
투 포인터 문제링크 https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그 www.acmicpc.net 각 배열의 부분합을 구하고 그 모든 값들을 List에 저장하고 정렬한다. 투 포인터로 한 리스트는 처음부터 다른 리스트는 뒤에서부터 두 값들의 합을 'T'와 비교한다. package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOEx..
트리 DP 문제링크 https://www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 첫 번째 줄에는 친구 관계 트리의 정점 개수 N이 주어진다. 단, 2 ≤ N ≤ 1,000,000이며, 각 정점은 1부터 N까지 일련번호로 표현된다. 두 번째 줄부터 N-1개의 줄에는 각 줄마다 친구 관계 트리의 에 www.acmicpc.net 트리를 이용해서 DP와 DFS를 활용해야 풀 수 있는 문제이다. 루트 노드(임의로 1로 설정)를 잡고 '얼리어답터'인지 아닌지 2가지 경우 수를 따져가며 DFS를 진행한다. package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOException; import java.io..
다익스트라 문제링크 https://www.acmicpc.net/problem/11779 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; im..
문제링크 https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나 같다. 문자열은 정수로 시작하고, 연산자와 정수가 www.acmicpc.net ans의 초기값을 0으로 설정하면 14퍼에서 틀립니다!! 최솟값 설정을 적절하게 해주어야 통과할 수 있습니다. package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; imp..
문제링크 https://www.acmicpc.net/problem/11437 11437번: LCA 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정 www.acmicpc.net package acmicpc.Gold3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util...
JPA ORM(Object-relational Mapping) 개념 객체를 RDB 테이블에 자동으로 영속화 해주는 것 장점 SQL문이 아닌 Method를 통해 DB를 조작할 수 있다. 객체지향적 접근만 고려하면 되기 때문에 생산성 증가 단점 프로젝트 규모가 크고 복잡하여 설계가 잘못된 경우 속도 저하 및 일관성을 무너뜨리는 문제점이 생길 수 있음 ORM vs SQL Mapper ORM DB 데이터 Object 필드 객체를 통해 간접적으로 DB 데이터를 다룬다. 객체와 DB의 데이터를 자동으로 매핑해준다. JPA, Hibernate SQL Mapper SQL Object 필드 SQL문으로 직접 DB를 조작한다. MyBatis, jdbcTemplate JPA(Java Persistence API) Java ..
데이터베이스 풀 Connection Pool 클라이어트의 요청에 따라 각 애플리케이션의 스레드에서 DB에 접근하기 위해서는 Connection이 필요하다 이런 Connection을 여러 개 생성해 두어 저장하는 공간(캐시)을 말한다. 또는 필요한 Connection을 꺼내어 쓰는 기법을 말한다. DB 접근 웹 컨테이너가 실행되면서 DB와 연결된 Connection 객체들을 미리 생성하여 pool에 저장 DB에 요청 시 pool에서 Connections객체를 가져와 DB에 접근 처리가 끝나면 다시 pool에 반환 Connection이 부족하면 해당 클라이언트는 대기 상태로 전환시키고 Pool에 Connection이 반환되면 대기 상태에 있는 클라이언트들에게 순차적으로 제공된다 사용 이유 매 연결마다 Con..
Thread 개념 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말하며, 세부적으로는 운영체제에 의해 관리되는 하나의 작업 혹은 태스크를 의미한다. JVM에 의해 하나의 프로세스가 발생하고 main() 안의 실행문들이 하나의 스레드이다. main() 이외의 또 다른 스레드를 만들기 위해선 Thread 클래스를 상속하거나 Runnable 인터페이스를 구현한다. 다중 스레드 작업 시에는 각 스레드끼리 정보를 주고 받을 수 있어 처리 과정의 오류를 줄일 수 있다. 프로세스끼리는 정보를 주고 받을 수 없다. 멀티스레딩 개념 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법 장점 메모리 공유로 인한 시스템 자원 소모 감소 동시에 두 가지 이상의 활동을 하는 것이 가능 단점 서로 자원을..