목록전체 글 (37)
쉽지않은 블로그
다음과 같이 사용하고 싶은 자료구조 객체(ArrayList)를 호출할 때 처럼 타입을 함께 불러주는 것을 많이 해봤을 것이다 ArrayList arr = new ArrayList(); ArrayList nums = new ArrayList(); //java SE7 부터는 인스턴스생성시 앞의 참조형 변수를 통해 추론할수 있는경우는 생략이 가능합니다. ArrayList 변수의 타입을 지정해주는 부분을 Generic이라고 한다. (data type 을 generalize 한다는 것을 의미함) JAVA , C++ 에서 어떤 MainClass 안에 여러 형태의 클래스 A, B, C에 대한 동일한 동작을 하는 메서드가 있을 경우 MainClass{ public void foo (class A , class A){ ..
컬렉션 컬렉션이란 순서에 관련이 있거나 집합적인 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 구현해놓은 클래스의 집합이다 자바에서 일반적인 배열의 선언은 길이가 고정되어있기 때문에 크기를 한번 할당을 받을 때 크게 받아놓고 하는 경우가 있다. 이러한 불편함을 덜고자 java.util.* 에서 제공하는 클래스와 인터페이스들을 사용해본적이 있을 것이다 이런 것들을 통틀어서 컬렉션 프레임워크 라고한다. //일반적인 고정길이 배열선언 int []arr = new int [10000]; //컬렉션을 이용한 가변길이 배열(ArrayList)선언 ArrayList arr2 = new ArrayList(); 종류 컬렉션 프레임워크에서 구현되는 여러 자료구조들은 단독적으로 존재하지 않고 항상 인..
쿼리를 실행하는 예제 필요한 파일들 1.DTO , DAO 가 필요함 (정의해줘야 됨) 2.query문이 필요함 3.DAO에 CRUD 역할을 하는 메서드를 만들어야 된다 4.NamedParameterJdbcTemplate 같은 객체가 필요함 (스프링 jdbc가 제공함) 파일 구조 DTO DTO (Data Transfer Object)를 의미함 보통 원하는 데이터베이스의 table의 속성에 맞게 변수를 가지는 게 보통이며 표기법에 주의해야 한다 (예를 들어 mysql에서 속성명이 sale_price 였다면 DTO 변숫값을 salePrice로 camel case로 변환해야 jdbc라이브 러리가 알아서 mapping 해준다 jdbc.core.BeanPropertyRowMapper 가 알아서 해줌 ) 일반적으로 ..
www.acmicpc.net/problem/17835 17835번: 면접보는 승범이네 첫째 줄에 도시의 수 N(2 ≤ N ≤ 100,000), 도로의 수 M(1 ≤ M ≤ 500,000), 면접장의 수 K(1 ≤ K ≤ N)가 공백을 두고 주어진다. 도시는 1번부터 N번까지의 고유한 번호가 매겨진다. 다음 M개의 줄에 걸쳐 www.acmicpc.net 나의 풀이 사실 이문제는 이문제의 제작자인 데구리형님 에게 약간의 힌트를 예전에 들은적이 있어 그 기억을 더듬어보며 바로 문제를 풀수 있었다. 이 문제는 단방향인게 골때리는 점이다. 이 문제가 양방향이 였다면 면접장을 기준으로 다익스트라를 돌려보면 모든 마을의 최단거리를 저장하고 모든 마을의 최단거리중 가장 큰 값을 정답의 후보로 올려주면 되는문제였을것이다..
www.acmicpc.net/problem/17831 17831번: 대기업 승범이네 첫 번째 줄에 판매원들의 수 N(2 ≤ N ≤ 200,000)이 주어진다. 판매원들은 1번, 2번, …, N번으로 번호가 매겨지며, 승범이는 항상 1번이다. 두 번째 줄에 2번 판매원부터 N번 판매원의 사수가 순서대 www.acmicpc.net 나의 풀이 이 문제는 그리디 하게 풀 수 없다 어느 사원이 속하냐 안 속하냐는 다른 사원들의 값에도 효과를 미치기 때문에 방향을 고려하여 문제를 풀어야 된다 트리로 되어있는 문제이기때문에 맨 아래 리프 노드 푸터 루트 노드까지 쭉 뭔가 정보를 가지고 올려다 주면 위에서 판별할 수 있지 않을까 생각을 하였다 그리고 자료구조를 구성하자면

spring-jdbc를 이용하여 드라이버 연결하기 아래 라이브러리를 사용하고자 하는 스프링 버전에 맞게 pom.xml 에 의존성을 주입해준다 spring-conetxt 스프링을 사용하기 위한 라이브러리 spring-jdbc jdbc 라이브러리 spirng-tx 스프링에서 제공하는 트렌젝션 관련 기능 mysql-connector-java mysql에서 제공하는 드라이버 commons-dbcp2 datasource를 사용하기 위하여 주입 1.DB에 연결에 대한 정보를 해주어야 됨 applicationContext (메인 함수 입장에서는)한테 설정을 알려줄 파일이 필요함 해당 역할을 하는 파일이 applicationconfig class가 된다. config라는 패키지를 이용하여 채 설정을 담당하는 파일들을 ..

spring jdbc 라이브러리를 사용하는 이유 다음은 JDBC만을 사용할 때의 코드의 예시이다 (spring-jdbc와 그냥 jdbc는 다르다) JDBC란 (Java database Connectivity) 자바에서 DB에 접근할 수 있도록 도와주는 자바 자체 api이다 이 JDBC만을 이용하게 되면 밑에 보이는 코드처럼 여러가지 과정을 거쳐주어야 된다. public Sample getSample(Integer sampleId) { Sample sample = null; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = D..
www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 나의 풀이 처음에는 set으로 풀어도 TLE를 당하지 않으리라는 생각으로 제출했지만 시간 초과가 났었다... 트라이로 풀어야 겠다는 생각을 했지만 트라이를 무조건? 써야 될 것 같진 않아서 생각을 하다 보니 힌트를 얻었다. 만약 전화번호 목록이 139 2321 12323 1392 다음과 같이 구성이 되어있다고 생각하면 문자열 전체를 보지 말고 모든 문자열을 사전순으로 정렬을 해보면 139..