분류 전체보기
[Python] BOJ / 12015번 / 가장 긴 증가하는 부분 수열 2
12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) 출력 첫째 줄에..
[Java / Spring] 18. Annotation 활용하기
자바 어플리케이션은 기본적으로 두 가지의 설정 방식을 따른다. 첫 번째는 고전적으로 사용해왔던 xml 파일을 이용하는 방식이며, 두 번째는 어노테이션(Annotation)을 이용하는 방식이다. 이번 시간에는 이전 시간까지 xml 파일로 구현했던 스프링 설정을 어노테이션으로 변경하고자 한다. 우선 서비스 객체를 DI(Dependency Injection) 부분을 먼저 변경하려고 한다. 위 부분에서 태그 부분을 주석처리 한 뒤, 이를 어노테이션으로 대체할 것이다. 주석처리가 되었으면 ListController 클래스의 객체 변수 위에 다음과 같이 어노테이션을 달아준다. 어노테이션의 위치는 변수 위, setter 함수 위 등 상황에 따라 달라질 수 있다. 우리와 같은 경우에는 setter 함수가 실행되면서 추..
[Java / Spring] 17. 스프링 설정파일(dispatcher-servlet.xml) 분리하기
이번 시간에는 기존에 작성하였던 dispatcher-servlet.xml 파일을 여러 개의 파일로 나누어 분리하려고 한다. 파일을 분리하는 이유는 협업하는 사람이 있을 경우 각 기능에 따라 해당되는 부분을 나눠서 작업함으로써 일의 효율성을 높이기 위함이다. 이를 위해 우선 WEB-INF 폴더 내에 새로운 폴더를 생성하고 해당 폴더 내에 기존 dispatcher-servlet.xml 파일을 복사하여 총 3개의 xml 파일을 생성해주었다. 파일명의 경우 지정된 형식은 없으며 원하는 이름으로 작성할 수 있다.(여기서 새로 생성된 3개의 xml 파일은 모두 코드 구현이 안되어있는 상태임) 이후 dispatcher-servlet.xml 파일을 열고 기능에 따라 위 3개의 xml 파일에 코드를 복사해준다. 참고로 ..
[Java / Spring] 16. 데이터 서비스 클래스 준비 및 객체 사용하기
실습에 들어가기 전, 먼저 데이터 서비스를 위한 파일을 준비한 뒤 데이터베이스와 연동하기 위한 작업을 수행해준다. 데이터베이스를 연동하기 위해서는 라이브러리를 추가해주어야 하므로 다음의 코드를 pom.xml 파일에 추가해주었다. 이후 사전에 준비한 NoticeService 클래스의 객체를 사용하기 위해 dispatcher-servlet.xml 파일을 열어 다음과 같이 코드를 수정해준다. 위 코드의 의미는 noticeService라는 이름의 NoticeService 클래스 객체를 생성한 뒤, 이를 setter(setNoticeService)를 통해 ListController에 있는 객체 변수에 대입하겠다는 것이다. 즉, 이제 ListController에 자료형이 NoticeService인 객체 변수와 se..