- 알고리즘 분류 : 문자열 - 사용 언어 : JAVA - 문제 요점 - 스택을 이용해서 커서 기준 좌우를 설정하면 된다. - A스택은 커서 왼쪽의 알파벳을 넣고, B스택은 커서 오른쪽의 알파벳을 넣는 방식 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; // Link : https://www.acmicpc.net/problem/5397 public class Main { public static StringBuilder sb = new StringBuilder(); public static void main(S..
Algorithm
- 알고리즘 분류 : 그리디 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; // Link : https://www.acmicpc.net/problem/1541 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); // 1. 뺄셈은 가장 마지막에 진행해야하므로,..
- 알고리즘 분류 : BFS - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { public static int M, N, K;// M : 맵 세로, N : 맵 가로, K : 직사각형 갯수 public static boolean[][] map;// 맵 public static ArrayList ..
- 알고리즘 분류 : 문자열, Comparable 인터페이스 구현 - 사용 언어 : JAVA - 문제 요점 - 중복 값은 HashSet으로 넣음. (소스에서는 안했지만 아예 처음부터 HashSet으로 해도 좋을듯) - hashSet 안에 있는 문자열들을 CustomString 배열로 넣어준다. - Comparable 인터페이스로 구현했으니 정렬 진행 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays..
- 알고리즘 분류 : 구현, 스택 - 사용 언어 : JAVA - 문제 요점 - 스택을 이용해서 커서 기준 좌우를 설정하면 된다. - A스택은 커서 왼쪽의 알파벳을 넣고, B스택은 커서 오른쪽의 알파벳을 넣는 방식 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Stack; // Link : // 1. LinkedList를 이용하니 시간초과 발생함. // 2. 두 개의 Stack을 이용하면 간단히 해결 가능(커..
- 알고리즘 분류 : 트리, BFS - 사용 언어 : JAVA - 문제 요점 - 인접 리스트를 이용하여 BFS 방식 풀이 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; // Link : https://www.acmicpc.net/problem/11725 public class Main { public static int N;// N: 노드의 갯수 pu..
- 알고리즘 분류 : 트리 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; // Link : https://www.acmicpc.net/problem/9934 // 참고로 처음에 Node의 value 타입을 char로 줬었는데, 노드의 depth가 4 이상이 넘어가는 경우 10의 자리가 될 수 있기 때문에 char로 하면 안됨. int로 수정함 public class Main { public static int K; public sta..
- 알고리즘 분류 : 트리 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.StringTokenizer; // Link : https://www.acmicpc.net/problem/1991 public class Main { public static int N;// 노드의 갯수 public static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws..