가장 긴 경로를 찾는 문제이길래, 당연하게 DFS를 사용해모든 경로를 하나하나 고려해봐야겠다고 생각했다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class BJ_1167 { static ArrayList[] arr; static boolean[] visited; static int max; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRea..
최단 경로, 시간 탐색 -> bfs 왜? bfs는 한 레벨씩 내려가며 탐색, 목적지 도달 시 그 경로가 곧 최종경로. dfs는 모든 경로 방문해봐야함 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class BJ_2178 { static int[] dx = {0, 0, -1, 1}; //x인덱스 이동 static int[] dy = {-1, 1, 0, 0}; //y인덱스 이동 static int[][] arr; stati..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class BJ_1260 { static ArrayList[] arr; static boolean[] visited; static StringBuilder dfsResult..
분명 논리상 맞는 거 같은데, 자꾸 어디선가 틀림. 그래서 디버깅 해보고 손으로 계속 따라가다 보니까 빨간부분 코드가 있어야 풀 수 있다. 왜? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class BJ_13023 { static ArrayList[] arr; static boolean[] visited; static int result; public static void main(String[] args) throws IOException { BufferedR..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BJ_2023 { static int n; static StringBuilder sb; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); sb = new StringBuilder(); n = Integer.parseInt(br.readLine()); dfs(2,1); dfs(3,1); dfs(5,1); dfs(7,1); System..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class BJ_11724 { static ArrayList[] arr; static boolean[] visited; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringToke..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BJ_10989 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int i, n; n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; for(i=0; i
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class BJ_10989 { public static void main(String[] args) throws IOException { int n, i, k, j, num, ind; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(br.readLine()); Queue resultQ = new LinkedList(..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BJ_1517 { static int[] arr, tempArr; static long result; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); arr = new int[n]; tempArr ..
기존 코드는 분할 할때마다 새로운 int 배열 두개를 생성해서 정렬하고, 그걸 merge한 배열을 또 새로 만들어서 반환하는 형식 에서 다른 코드 참고하고 이해해서 개선했다 해당 코드는 정렬을 위한 temp 배열 외에는 다른 배열을 만들지 않고 정렬한 값을 다시 본 입력받은 배열에 저장하는 방식 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BJ_2751 { static int[] arr, tempArr; public static void main(String[] args) throws IOException { BufferedReader br = new Buffe..