백준 골드3

    [백준, BOJ 16437] 양 구출 작전 (java)

    https://www.acmicpc.net/problem/16437메모리: 71,792 KB , 시간: 1,092 ms사용 알고리즘: 깊이 우선 탐색, 그래프 이론, 그래프 탐색, 트리import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.StringTokenizer;public class Main { static boolean[] isSheep; static int[] count; static ArrayList> edges; public static void main(String[] args) throws Exception{ Buffe..

    [백준, BOJ 16971] 배열 B의 값 (java)

    https://www.acmicpc.net/problem/16971메모리: 80,416 KB , 시간: 544 ms사용 알고리즘: 그리디 알고리즘, 수학import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { /** * A의 네 모서리(A[0][0], A[0][M - 1], A[N - 1][0], A[N - 1][M - 1])는 * B를 구하기 위해 1번 씩만 사용된다. * * A의 0번 행, N - 1번 행, 0번 열, M - 1번 열에 속한 원소들 중 * 네 모서리가 아닌 원소들은 * B를 구하기 위해 2..

    [백준, BOJ 2058] 원자의 에너지 (java)

    https://www.acmicpc.net/problem/2058메모리: 16,212 KB , 시간: 140 ms사용 알고리즘: 다이나믹 프로그래밍, 트리에서의 다이나믹 프로그래밍, 트리이 문제는 구현보다 문제 자체를 이해하는 게 더 어려웠다. 문제를 간단히 정리하면,원자의 에너지 상태 = 노드라고 보고'어떤 에너지 상태(A)에서 다른 에너지 상태(B)로 변할 수 있는 방법은 한 가지뿐'이라는 문장으로어떤 노드(A)에서 다른 노드(B)로 갈 수 있는 방법이 하나뿐인 트리 문제라는 것을 알 수 있다. 어떤 노드(A) 값에서 어떤 양성자를 더하거나 빼서 다른 노드(B) 값이 나온다면 두 노드는 서로 연결되어 있다.A 노드에서 모든 양성자의 값을 더하거나 빼 본다.A 노드에서 양성자 값을 더하거나 뺀 값이 다..

    [백준, BOJ 17142] 연구소 3 (java)

    https://www.acmicpc.net/problem/17142메모리: 26,156 KB , 시간: 240 ms사용 알고리즘: 그래프 이론, 브루트포스 알고리즘, 그래프 탐색, 너비 우선 탐색, 백트래킹바이러스가 어디에 존재하는지 ArrayList에 담아 따로 관리해 준다.각 바이러스마다 해당 바이러스만 활성화했을 때, 모든 곳에 바이러스를 확산시키기 위해 얼마만큼 시간이 걸릴지 spread_time 배열에 정보를 저장해 둔다.바이러스들 중 M개의 바이러스를 백트래킹을 통해 골라준 후, 고른 M개의 바이러스들을 활성화시켰을 때 최대 시간을 구해준다.M개의 바이러스 조합 중 최대 시간이 가장 짧은 시간을 답으로 출력한다. 이 문제를 해결하면서 한 가지 헷갈렸던 조건은 활성 바이러스가 비활성 바이러스가 ..

    [백준, BOJ 1520] 내리막 길 (java)

    https://www.acmicpc.net/problem/1520메모리: 34,424 KB , 시간: 396 ms사용 알고리즘: 깊이 우선 탐색, 다이나믹 프로그래밍, 그래프 이론, 그래프 탐색import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int M, N; static int[][] map; static int[][] can_move; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; public static void main(Stri..

    [백준, BOJ 2812] 크게 만들기 (java)

    https://www.acmicpc.net/problem/2812메모리: 40,472 KB , 시간: 392 ms사용 알고리즘: 자료 구조, 그리디 알고리즘, 스택import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Deque;import java.util.LinkedList;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..

    [백준, BOJ 6209] 제자리 멀리뛰기 (java)

    https://www.acmicpc.net/problem/6209메모리: 25,108 KB , 시간: 292 ms사용 알고리즘: 이분 탐색, 그리디 알고리즘, 매개 변수 탐색import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokeniz..

    [백준, BOJ 9466] 텀 프로젝트 (java)

    https://www.acmicpc.net/problem/9466메모리: 307,900 KB , 시간: 1,352 ms사용 알고리즘: 깊이 우선 탐색, 그래프 이론, 그래프 탐색import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int[] s; static boolean[] visited; static int[][] order; static int result; public static void main(String[] args) throws Exception{ BufferedReader br = n..

    [백준, BOJ 2228] 구간 나누기 (java)

    https://www.acmicpc.net/problem/2228메모리: 14,208 KB , 시간: 124 ms사용 알고리즘: 다이나믹 프로그래밍import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLin..

    [백준, BOJ 1414] 불우이웃돕기 (java)

    https://www.acmicpc.net/problem/1414 1414번: 불우이웃돕기 첫째 줄에 컴퓨터의 개수 N이 주어진다. 둘째 줄부터 랜선의 길이가 주어진다. i번째 줄의 j번째 문자가 0인 경우는 컴퓨터 i와 컴퓨터 j를 연결하는 랜선이 없음을 의미한다. 그 외의 경우는 랜선 www.acmicpc.net 메모리: 14,388 KB , 시간: 136 ms 사용 알고리즘: 그래프 이론, 최소 스패닝 트리, 문자열 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.PriorityQueue; public class Main { static int[] parent; public static void mai..