![[java] 백준 2023번 문제(신기한 소수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdgqyRv%2FbtsMVxxn2nh%2FAAAAAAAAAAAAAAAAAAAAAMcCPgaAZwadrUIYRqsHjAHslIWHlsHWSoyfaQ2N3LZO%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dpc9VgVwRjW4deI7el8BbAsSlF0U%253D)
원본 링크 : https://www.acmicpc.net/problem/2023문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Boj_2023{ static int n; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(br.readLine()); DFS(2, 1); ..
![[java] 백준 11724번 문제(연결 요소의 개수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FuNzSX%2FbtsMWsa20zK%2FAAAAAAAAAAAAAAAAAAAAANEJU1JfF7oxnPuvMSnXpqbh3SEY8kC64Pqn4UiMl7R9%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D%252Bbftpmeupqfn%252FrReahlA9EOnLPc%253D)
원본 링크 : https://www.acmicpc.net/problem/11724문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.StringTokenizer;public class Boj_11724{ static ArrayList[] adjacencyList; // 인접 리스트 static boolean[] visited; // 방문 체크 public static void main(String[] args) throws IOException { BufferedRea..
![[java] 퀵 정렬(Quick Sort)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FplV5Z%2FbtsMVSUs7W7%2FAAAAAAAAAAAAAAAAAAAAABn6MXR68NED56EJj95CbrTrRwzZgs1wc74HS7npHGuh%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DbOOIIGxS73oN035HNZ2K46%252BnY3c%253D)
퀵 정렬은 피벗을 선정해 해당 값보다 작은 데이터와 큰 데이터로 분류하는 것을 반복해 정렬하는 알고리즘이다.피벗이 어떻게 선정되는지가 시간 복잡도에 많은 영향을 미치고, 평균적인 시간 복잡도는 O(nlogn)이다. 퀵 정렬 핵심 이론피벗을 중심으로 계속 데이터를 2개의 집합으로 나누면서 정렬하는 것이 퀵 정렬의 핵심이다.피벗보다 작으면 왼쪽, 크면 오른쪽으로 정렬하면 된다.① 데이터를 분할하는 pivot을 설정한다(위 그림의 경우 가장 오른쪽 끝을 pivot으로 설정).② pivot을 기준으로 다음 a~e 과정을 거쳐 데이터를 2개의 집합으로 분리한다.②-a: start가 가리키는 데이터가 pivot이 가리키는 데이터보다 작으면 start를 오른쪽으로 1칸 이동한다.②-b: end가 가리키는 데이터가 p..
![[java] 백준 1377번 문제(버블 소트)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FpgZfu%2FbtsMQEJ5tmQ%2FAAAAAAAAAAAAAAAAAAAAABW9fyE4J8nck2pTtlOEf1wIPQOF-zZmU_v2VXNuk507%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DukspDlu63fHthvGquSJeq5vy8%252Fw%253D)
원본 링크 : https://www.acmicpc.net/problem/1377문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class Boj_1377{ // 정렬 전 인덱스와 값을 저장하는 객체 static class Pair implements Comparable { int index; // index 저장 int value; // value 저장 // 생성자 Pair(int index, int value) { this...
![[java] 백준 16967번 문제(배열 복원하기)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbKDJyZ%2FbtsMRkbWroh%2FAAAAAAAAAAAAAAAAAAAAAItJ423sVA83EMLjk5ILB19Yaq5VoUjSkBcpkzKGtmW3%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D%252F4sySRfw%252FERp46xO0D2E1We0CHU%253D)
원본 링크 : https://www.acmicpc.net/problem/16967문제설명 소스코드import java.io.*;import java.util.StringTokenizer;public class Boj_16967{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // H, W, X, Y를 받아옴 StringT..
![[java] 백준 17298번 문제(오큰수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbzqYwT%2FbtsMOQXoozj%2FAAAAAAAAAAAAAAAAAAAAAJxJLMpIon0jHoo9osbzOU1CAjmvm8q4k9RM-iaog5qf%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DEM9qL4HbVo38s7JBVwPpCArqK3M%253D)
원본 링크 : https://www.acmicpc.net/problem/17298 문제설명 소스코드import java.io.*;import java.util.Stack;import java.util.StringTokenizer;public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // n과 수열을 받아옴..
![[java] 백준 1874번 문제(스택 수열)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FUI9dK%2FbtsMMGOJXpB%2FAAAAAAAAAAAAAAAAAAAAAJi-XPLJmQqYc45SDuUg-ud6j3W-KKTNEe7KjRJgiIRu%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DgpSML6xqKoeFfN9wpPkjHaR0Dtc%253D)
원본 링크 : https://www.acmicpc.net/problem/1874 문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Stack;public class Boj_1874 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); Stack..
![[Java] 백준 12891번 문제(DNA 비밀번호)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fk4qQd%2FbtsMMc0396h%2FAAAAAAAAAAAAAAAAAAAAAImfgTrgjXnKBOW41MuKnzNutAeGwUkury9SBNsZRaQV%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DrdaujhhiIcznjNXt1mWB6n3uRKc%253D)
원본 링크 : https://www.acmicpc.net/problem/12891 문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Boj_12891{ static int[] inputACGT = new int[4]; // 입력 받은 부분문자열에 포함되어야 할 최소 개수 static int[] countACGT = new int[4]; // 구간에 포함된 부분문자열에 포함된 개수 public static void main(String[] args) throws IOExceptio..