1865. 웜홀 (Java)
·
Algorithm & Data Structures/BOJ
벨만-포드 알고리즘을 이용한 음의 가중치 그래프 문제였다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; 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 int N,M,W; static int[] dist; static final int INF = 9999999..
1918. 후위 표기식 (Java)
·
Algorithm & Data Structures/BOJ
스택과 priority 함수를 통해 연산자의 우선순위를 판단하고 출력한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String str =br.readLine(); Stack st = new Sta..
1991. 트리 순회 (Java)
·
Algorithm & Data Structures/BOJ
Node class 안의 left Node right Node 를 구현하여 이진트리를 구현해 내었고 출력위치를 조정하여 전위, 중위, 후위 순회를 구현해 냈다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; class Node{ char value; Node left; Node right; public Node(char value, Node left, Node right) { this.value = value; this.left = left; this.right = right; } } public class b1991 { st..
2096. 내려가기 (Java)
·
Algorithm & Data Structures/BOJ
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[][] board = new int[n + 1][3]; for(int i = 1; i
2448. 별찍기 - 11 (Java)
·
Algorithm & Data Structures/BOJ
dfs를 활용한 문제 규칙찾기가 쉽지않아 결국 답지를 보고야 말았던 문제 규칙은 생각 외로 단순했다. import java.util.Arrays; import java.util.Scanner; public class b2448 { static char[][] arr; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); arr = new char[N][N * 2 - 1]; for (int i = 0; i < N; i++) { Arrays.fill(arr[i], ' '); } star(0, N-1, N); StringBuilder sb = new StringBuilder(); for..
14938. 서강그라운드 (Java)
·
Algorithm & Data Structures/BOJ
DFS를 통해 풀었으며 DFS로 완전탐색을 하고 이문제를 풀려면 boolean 배열을 2개 써야 했다 이외에도 다익스트라, 플루이드와샬, BFS등 모든 탐색기법이 가능했다. package Boj; 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 b14938 { static int N,..
12851. 숨바꼭질2 (Java)
·
Algorithm & Data Structures/BOJ
오랜만에 풀어서 그런지 자잘한 오류가 너무 많았던 문제였다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int N, M, answer = 0,time=0; static boolean[] isVisited = new boolean[200005]; public static void BFS() { Queue q = new ArrayDeque(); q.offer(N); boolean fla..
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[] ..