분류 전체보기
[Python] BOJ / 1715번 / 카드 정렬하기
1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶..
[Python] BOJ / 2110번 / 공유기 설치
2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 문제 도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x1, ..., xN이고, 집 여러개가 같은 좌표를 가지는 일은 없다. 도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, 가장 인접한 두 공유기 사이의 거리를 가능한 크게 하여 설치하려고 한다. C개의 공유기를 N..
[Java / Spring] 6. XML Configuration을 Java Configuration으로 변경하기
이번 시간에는 지금까지 XML 파일을 통해 작성했던 것을 Java 파일을 통해 작성하도록 변경하고자 한다. 이를 위해서는 별도의 자바 클래스가 필요하며 해당 파일이 일반적인 자바 클래스가 아니라 설정을 위한 클래스임을 표시하기 위해서 @Configuration 이라는 어노테이션을 붙여준다. 이렇게 하면 해당 클래스 안에서 XML 파일에서 설정했던 내용을 어노테이션으로 추가할 수 있게 된다. 따라서 다음과 같이 새로운 클래스를 만든 뒤, 코드를 작성해주었다. @ComponentScan("spring.di.ui") @Configuration public class NewlecDIConfig { @Bean public Exam exam() { return new NewlecExam(); } } 위의 구문은 기..
[Java / Spring] 5. 어노테이션을 이용한 객체 생성
이번 시간에는 어노테이션을 이용해서 객체를 생성하는 방법에 대해 알아보고자 한다. 우선 xml 파일에 있는 다음의 코드를 주석처리 해주었다. 이렇게 하면 xml 파일에서 객체를 생성하는 코드는 모두 사라졌을 것이다. 이후 객체를 생성할 클래스로 들어가 해당 클래스 위에 @Component 어노테이션을 작성해준다. 다음으로 이전 시간에 우리가 스프링에게 지시했던 것처럼 xml 파일에 코드를 작성해준다. 이렇게 하면 구문은 더 이상 필요가 없기 때문에 삭제해준다. 이제 java 파일에서 생성된 객체를 받아오는 코드를 작성하고 실행하면 정상적으로 실행 되는 것을 확인할 수 있다. ApplicationContext context = new ClassPathXmlApplicationContext("spring/d..