import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class BJ_1043_거짓말 { static int[] parent; public static void main(String[] args) throws IOException { int[] truth; ArrayList[] partyArr; StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(new InputStreamReader..
x가 속한 집합의 대표노드를 찾고자 할 때 parent[x]를 봐서 실수를 했다. find 연산의 경로 압축 때문에 parent 배열의 값이 곧 대표노드일 것이라고 생각해서 그렇다. 하지만 find 연산의 경로 압축은 이후의 find연산을 통해 더 빠르고 효율적으로 대표노드를 찾기 위함이다. x가 속한 집합의 대표노드를 알기 위해서는 parent 배열을 보는 것이 아니라 find연산을 해야함을 주의하자. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BJ_1976_여행가자 { static int[] pa..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BJ_1717_집합의표현 { static int[] parent; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine(), " "); int n = Integer.parseInt(..
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_2251_물통 { static int[] sender = {0, 0, 1, 1, 2, 2}; //물을 옮길 수 있는 6가지 경우의 수 static int[] receiver = {1, 2, 0, 2, 0, 1}; static int[] maxArr = new int[3]; //초기 입력 받은 물통 크기 static int[] nowArr = new int[3]..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class BJ_1707_이분그래프 { static ArrayList[] arr; static boolean[] visited; static int[] check; static boolean dfsResult; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRead..
문제 자체는 단순해 보였으나 시간복잡도에 매우 민감한 문제였음 교재나 인터넷 상의 다른 코드들과 거의 같은 코드임에도 불구하고 시간초과 발생 사소한 부분이라도 줄이려고 여러번 시도했고 결국엔 통과 해당 코드도 어쩔때는 통과하고 어쩔때는 시간초과에 걸린다..ㅎ 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 BJ_1325_효율적인해킹 { static ArrayLis..
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 BJ_18352_특정거리의도시찾기 { static ArrayList[] arr; static Integer[] visited; static int cnt; static Queue result; public static void main(String[] args) throws IOException { BufferedR..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BJ_21568_AxByC { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine(), " "); StringBuilder sb = new StringBuilder(); int a..