전체 보기

스프링 구조 어플리케이션은 기본적으로 Components 간의 상호작용으로 동작하는데 Component 또는 Bean 형태로 스프링 컨테이너인 ApplicationContext 라는 DI 컨테이너에 올려두고 관리 되는 구조. ApplicationContext 와 Bean 등록 빈을 등록하는 방법은 위와 같이 annotation 기반으로 등록하거나 xml 파일로 등록할 수 있다. 위와 같이 스프링 컨테이너에 빈을 등록하면 실제 어플리케이션이 동작할 때 의존성 주입 (DI) 을 기반으로 해서 스프링이 관리하는 빈으로 변경되어 수행된다. @Configuration // Coonfiguration 또한 Component 이다. public class AppConfig { @Bean public UserServi..

https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 📝문제 📝풀이 탐색 위치를 p1 이라고 하면 x 방향으로 1 또는 y 방향으로 1 다음인 p2 와 자리값을 바꾸고 주어진 2차원 배열을 모두 탐색해서 연속되는 문자의 최대 값을 갱신시키면 된다. N lis 알고리즘 사용 x import java.io.*; import java.util.*; public class Main { static int max = 1; static int n; static char[][] map; public static void main(String[] args) throws IOExce..

https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 📝문제 📝풀이 후위 표기식 문제는 항상 stack을 이용한다. 1. 연산자 => stack 에서 2개 꺼낸 피 연산자를 연산 후 stack에 결과 값을 push 2. 피연산자 => stack 에 push import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws..

https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 📝문제 📝풀이 태그 안에 있는 문자열들을 제외한 나머지들을 뒤집어 출력하는 문제이다. 기본적으로 단어들을 모아서 출력하기 때문에 1. 태그 시작점 "

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 📝문제 📝풀이 완전탐색으로 풀어내면 되는데 2차원 이상 배열은 복사를 1차원 배열 단위로 고쳐서 .clone() 메서드를 사용해야 한다. dfs탐색하기 전에 기존 배열을 어디에 저장해놓고 dfs 탐색이 끝나면 저장된 배열을 원복하면서 탐색한다. 연쇄적으로 합쳐질 수 없기 때문에 큐를 하나 선언해서 하나씩 poll 하면서 병합을 진행한다. 1. 끝이 0 이면 큐에서 하나..

https://www.acmicpc.net/problem/16198 16198번: 에너지 모으기 N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있 www.acmicpc.net 📝문제 📝풀이 DFS 완전 탐색 문제이다. 1 2 3 4 가 주어질 때 (3) 번을 고를 경우 => energy += 2*4 가 되고 1 2 4 가 남는다. 1 4 는 고를 수 없기 때문에 남은 2번을 고르면 energy += 1*4 를 하면 최종적으로 12가 나온다. List 하나 선언해서 DFS를 돌리고 해당 위치 x 를 remove 한 뒤 백트래킹을해서 다시 x 를 넣어 주는 식으로 하..

https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 📝문제 📝풀이 시간제한을 보면 매우 빡빡한 것을 알 수 있다. 실패한 원인은 처음에 LinkedList 를 썼으나 결국엔 조건을 만족하기 위해서 index를 타야 했기 때문 입력이 매우 길기 때문에 index를 탈 생각을 하면 안된다 ( StringBuilder.insert 연산도 마찬가지) 따라서 2개의 스택만으로 모든 걸 해결해야 하는 문제이다 package baekjoon; import sta..