
문제 출처:www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 코딩을 하기 앞서 우선 의사 코드를 작성하였다. 확실히 의사코드를 작성하고 코딩을 시작하니 틀리는 횟수도 줄어들고 생각하는 법도 배우는 것 같다. 문제 해결의 핵심은 방문 배열이라고 생각한다. (3, 0) 이후 (3,1) 나오면 당연히 길을 건넌 것이다. 하지만 코드로 건넌 여부를 확인하기 위해 방문 배열을 사용하여 만약 해당 소, 즉 (3,0)에서 3에 해당하는 소의 방문 배열 값이 false이면 ..

문제 출처:www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 아래와 같은 모양을 구현하기 위해 규칙성을 찾아보기로 하였다. 1. 우선 상 후 하 좌 로 이동. 2. 1칸 채우고 방향 이동 -> 1칸 채우고 방향 이동 -> 2칸 채우고 방향이동 -> 2칸 채우고 방향이동 -> 3칸 채우고 방향이동... 이런식으로 채우는 칸수가 증가 규칙을 찾고 의사코드를 만들어보니, 아래와 같이 나오게 되었다. for(N번) ->1 if(N번째 이전까지) ->2 for(가장 외곽..

DI란? 의존성 주입이라는 어려운 단어보다는 부품 조립이라는 단어로 생각하는 게 더 편하다고 필자는 생각한다. 의존성 주입 방식으로는 두 가지가 존재하는데 일체형과 조립형이 존재한다. 일체형 예시 class A{ B b(); A(){ b = new B(); } } A a = new A(); 이런 식으로 A객체를 만듬으로써 B객체가 자동으로 생성된다. 조립형 예시 class A{ B b(); public void setB(B b){ this.b=b; } } B b = new B(); 부품(dependency) A a = new A(); a.setB(b); 부품 주입 (dependency Injection) 조립형은 외부에서 B라는 객체를 만들고 A에 주입해주는 방식이다. 스프링에서는 두 번째, 즉 조립형 ..
컨테이너? - 인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는것. - 코드의 처리과정을 위임받은 독립적인 존재. - 컨테이너는 적절한 설정만 되어있다면 누구의 도움없이도 프로그래머가 작성한 코드를 스스로 참조한 뒤 알아서 객체의 생성과 소멸을 컨트롤 해준다. 스프링 컨테이너 종류 BeanFactory 빈 객체를 생성하고 관리하는 클래스. Bean 자체가 필요하기 전까지 인스턴스화 하지 않는다(Lazy Loading) ApplicationContext BeanFactory와 비슷하지만 추가적인 기능을 제공 - 국제화가 지원되는 텍스트 메시지를 관리 - 이미지 같은 파일 자원을 로드 할 수 있는 포괄적인 방법을 제공 - 리스터로 등록된 빈에게 이벤트 발생을 알려준다.