1043. 거짓말 (Java)
·
Algorithm & Data Structures/BOJ
UnionFind를 이용하여 문제를 풀었다. 1. 파티멤버를 확인하면서 union해주고 2. 파티멤버를 돌면서 find 해준다음 진실을 아는사람과 엮여있다면 모두 진실체크 3. 파티멤버를 돌면서 진실을 모르는 파티가 있다면 answer ++; 4. answer 출력 하였다. package algorithm.src.minho; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { static ArrayList[] party; static int N,M..
2638. 치즈 (Java)
·
Algorithm & Data Structures/BOJ
BFS를 여러번 사용하면서 바깥에서의 공기통로와 치즈의 겉부분을 체크하는 방식으로 문제를 해결. package algorithm.src.minho; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; import java.util.StringTokenizer; class XY { int x; int y; public XY(int x, int y) { this.x = x; this.y = y; } } public class b2638 { static int N, M, count=0; static in..
1167. 트리의 지름 (Java)
·
Algorithm & Data Structures/BOJ
DFS를 활용한 문제 트리의 지름을 구하는 방법 package algorithm.src.minho; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; class Road{ int end; int val; public Road(int end, int val) { this.end = end; this.val = val; } } public class b1167 { static int N ,max = 0 ,x; static ArrayList[] list; static boolean[] ..
11725. 트리의 부모 찾기 (Java)
·
Algorithm & Data Structures/BOJ
문제가 이해 되지 않아 꽤 힘들었던 문제 말그대로 2번 노드부터 N번 노드까지의 부모를 구하라는 문제였다. DFS를 사용하면 금방 쉽게 풀수 있으나 System.out 보다 StringBuilder를 사용하는것을 추천한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { static int N; static ArrayList[] list; static int[] answer; static boolean[] isVisited; static voi..
1967. 트리의 지름 (Java)
·
Algorithm & Data Structures/BOJ
package algorithm.src.minho; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; class Node { int end; int val; public Node(int end, int val) { this.end = end; this.val = val; } } public class Main { static ArrayList[] list; static int N, ans; static boolean[] isVisited; static void DFS(int i, ..
2665. 미로만들기 (Java)
·
Algorithm & Data Structures/BOJ
BFS를 돌리되 우선순위 Q를 사용하여 4방탐색 을 하는 문제였다. BFS인 관계로 무한루프에 빠지지 않기 위해서 isVisited 로 경로를 체크하였고 우선순위 Q에서는 comparable을 이용하여 가장 마지막에 도착할시, q가 다떨어질 시 에 BFS를 종료하도록 설계하였다. package BOJ; import java.io.*; import java.util.*; class Node implements Comparable{ int x; int y; int cnt; public Node(int x, int y, int cnt) { this.x = x; this.y = y; this.cnt = cnt; } @Override public int compareTo(Node o) { if(this.cnt==..
11779. 최소비용 구하기2 (Java)
·
Algorithm & Data Structures/BOJ
다익스트라 문제에 다가 자료구조 한두개를 더 추가하여 다익스트라 로 경유한 정점과 정점의 갯수를 출력하는 문제였다. package algorithm.src.minho; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.PriorityQueue; import java.util.StringTokenizer; class Node implements Comparable{ int end; int val; public Node(int end, int val) { super(); this.end = end; this.val..
17396. 백도어 (Java)
·
Algorithm & Data Structures/BOJ
별것없는 다익스트라 문제지만 다익스트라 알고리즘을 해결법을 보지않고 혼자 스스로 기억을 짜내어 구현하다 보니 isVisited를 빠트려 시간초과가여러번 났던 문제.. package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.PriorityQueue; import java.util.StringTokenizer; class Node implements Comparable{ int end; long val; public Node(int end, long val) { this.end = end; thi..
14284. 간선이어가기2 (Java)
·
Algorithm & Data Structures/BOJ
전형적인 다익스트라 문제 였따. package algorithm.src.minho; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.PriorityQueue; import java.util.StringTokenizer; class Node implements Comparable{ int end; int val; public Node(int end, int val) { super(); this.end = end; this.val = val; } @Override pu..
1504. 특정한 최단경로 (Java)
·
Algorithm & Data Structures/BOJ
전형적인 데이크 스트라 (다익스트라) 문제 출발지에서 경유지1 경유지1에서 경유지2 경유지2에서 도착지 의 다익스트라 결과값의 합과 출발지에서 경유지2 경유지2에서 경유지1 경유지1에서 도착지 의 다익스트라 결과값의 합중 최솟값을 비교하여 풀어보았다. package algorithm.src.minho; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.PriorityQueue; import java.util.StringTokenizer; class Node imple..