일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- BOJ
- java의 정석
- 10830번
- 1043번
- 냄새와 휴리스틱
- Design Patterns
- programmers
- Dxerr.h
- SerialDate 리펙터링
- 2206번
- 프로그래머스
- 백준
- 17장
- 9장
- Spring
- springboot
- 가장 긴 증가하는 부분 수열2
- Adapater Pattern
- 클린코드
- 코딩테스트
- 자바의 정석
- 2156번
- 코딩 테스트
- DxTrace
- Design Pattern
- 2166번
- java
- 11758번
- 1300번
- 11286번
- Today
- Total
목록전체 글 (80)
Don't give up!
1931번: 회의실 배정 (acmicpc.net) 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 어떻게 생각하고 문제를 풀었는가? 한 회의실에서 진행 가능한 최대 회의의 수는 시작시간이 빠르고, 종료시간이 빠른 순으로 회의를 선택하는 경우입니다. 따라서 N개의 회의 정보를 종료시간과 시작시간에 따라 정렬한다면 문제를 해결할 수 있을 것이라고 생각하였습니다. 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedR..
관점 지향 프로그래밍(Aspect-Oriented Programming, AOP) AOP는 각 기능들에 흩어져 있는, 그러나 독립적으로 분리하기 어려운 부가 기능들을 모듈화하는 프로그래밍 기법입니다. 공통된 부가 기능들을 재사용함으로써 애플리케이션 전체에 흩어진 공통 기능을 하나의 장소에서 관리할 수 있고 서비스 모듈로 하여금 다른 모듈을 신경쓰지 않도록 한다는 장점을 가지고 있습니다. 왜 필요한가? 객체지향 프로그래밍(OOP)에서는 단일 책임 원칙(Single Responsibility Principle, SRP)에 따라 하나의 클래스는 하나의 책임만 가져야 하며 개방 폐쇄 원칙(Open-Closed Principle, OCP)에 의하여 확장에는 열려 있으나 변경에는 닫혀 있어야 합니다. public ..
1043번: 거짓말 (acmicpc.net) 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 어떻게 생각하고 문제를 풀었는가? 진실을 아는 사람과 같은 파티에 속한 사람은 진실을 아는 사람이 됩니다. 결과적으로 과장된 이야기를 할 수 있는 파티를 찾기 위해서는 진실을 아는 사람들과 같은 파티에 참여하지 않아야 합니다. BFS로 진실을 아는 사람들이 참여하는 파티를 순회하며 다른 사람들을 queue에 넣음으로써 진실을 아는 파티와 그렇지 않은 파티를 계산할 수 있을 것이라고 생각하였습니다. 코드 import java.io..
2206번: 벽 부수고 이동하기 (acmicpc.net) 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 어떻게 생각하고 문제를 풀었는가? (1,1)부터 (N,M)까지의 최단 경로를 구하기 위해서는 BFS를 사용하여 문제를 해결할 수 있을 것이라고 생각하였습니다. 문제에서 단 한번 벽을 부술 수 있다는 것을 고려해야 하는데, 이를 해결하기 위해서 벽을 부순 상태에서의 최단거리와 벽을 부수지 않은 상태에서의 최단거리를 별도로 계산하여 해결하고자 하였습니다. 코드 import java.i..
1929번: 소수 구하기 (acmicpc.net) 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 어떻게 생각하고 문제를 풀었는가? 소수가 아닌 수는 소수로 나누어 떨어져야 합니다. 따라서 2부터 시작하여 소수를 찾고, 해당 값의 곱으로 나타내어지는 수들을 소수가 아닌 수라고 결정할 수 있으므로 이를 구현한다면 문제를 해결할 수 있을 것이라고 생각하였습니다. 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws IOE..
1022번: 소용돌이 예쁘게 출력하기 (acmicpc.net) 1022번: 소용돌이 예쁘게 출력하기 첫째 줄에 네 정수 r1, c1, r2, c2가 주어진다. www.acmicpc.net 어떻게 생각하고 문제를 풀었는가? 소용돌이는 가장 안쪽에서부터 n번째 테두리는 (2n-3)^2+1 ~ (2n-1)^2의 값을 갖습니다. 우측 테두리서부터 시작하여 +1이 진행되므로 상, 하, 좌, 우로 나누어 (a, b) 위치의 값을 식으로 나타낼 수 있다고 생각하였습니다. 코드 import java.io.*; import java.util.StringTokenizer; class Main { public static void main(String[] args) throws IOException { BufferedRea..
Spring의 IoC와 Bean 등록 Spring은 BeanFactory 인터페이스를 상속받는 ApplicationContext를 통해 IoC(Inversion of Control)를 수행할 객체 Bean을 등록합니다. Spring에서 Bean을 등록하는 방법에는 크게 3가지로 나누어 볼 수 있습니다. XML을 통한 Bean 등록 자바 Configuration 클래스를 통한 Bean 등록 Component Scan을 통한 Bean 등록 Bean을 등록하고 정상적인 Bean이 등록되었는지 확인하기 위해 코드를 정의하고, 테스트해보고자 합니다. public class MyRepository { public String value = "MyRepository"; } public interface MyServi..
Spring 프로젝트의 main함수는 @SpringApplication이라는 애너테이션과 SpringApplication클래스의 run 함수를 실행하고 있습니다. SpringApplication 클래스의 run함수는 ConfigurableApplicationContext를 반환으로 하고 있고 SpringApplication을 생성, 해당 인스턴스의 run함수를 실행합니다. SpringApplication의 생성자는 위의 함수를 resourceLoader를 null, primarySources를 첫번째 인수로 지정한 클래스(여기서는 WebCommunityBatchApplication)을 호출하였는데, ApplicationContextInitializer를 Initializer로, ApplicationLis..