백준 백트래킹

    [백준, BOJ 15664] N과 M (10) (java)

    https://www.acmicpc.net/problem/15664메모리: 14,308  KB , 시간: 104 ms사용 알고리즘: 백트래킹, 자료 구조import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.HashSet;import java.util.Set;import java.util.StringTokenizer;public class Main { static int N, M; static int[] arr; static Set set; static int[] combi; static StringBuilder answer; public st..

    [백준, BOJ 15665] N과 M (11) (java)

    https://www.acmicpc.net/problem/15665메모리: 34,648 KB , 시간: 356 ms사용 알고리즘: 백트래킹, 자료 구조import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static int N, M; static List list; static int[] arr; static StringBuilder answer; public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStr..

    [백준, BOJ 15651] N과 M (3) (java)

    https://www.acmicpc.net/problem/15651메모리: 68,504 KB , 시간: 420 ms사용 알고리즘: 백트래킹import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N, M; static int[] combi; static StringBuilder answer; public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(Sy..

    [백준, BOJ 15655] N과 M (6) (java)

    https://www.acmicpc.net/problem/15655메모리: 14,252 KB , 시간: 108 ms사용 알고리즘: 백트래킹import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static int M; static List list; static StringBuilder result; static int[] arr; public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(..

    [백준, BOJ 18430] 무기 공학 (java)

    https://www.acmicpc.net/problem/18430메모리: 16,180 KB , 시간: 168 ms사용 알고리즘: 백트래킹import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { // 부메랑 모양 static int[][][] boomerang = { {{0, -1}, {1, 0}}, {{-1, 0}, {0, -1}}, {{-1, 0}, {0, 1}}, {{0, 1}, {1, 0}} }; static int N, M; static in..

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

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

    [백준, BOJ 1799] 비숍 (java)

    https://www.acmicpc.net/problem/1799메모리: 15,996 KB , 시간: 192 ms사용 알고리즘: 백트래킹일단 이 문제에서 내가 생각해 낸 아이디어는,체스판에서 왼쪽 위 -> 오른쪽 아래로 내려오는 라인들을 그었을 때, 각 라인 위에 위치한 비숍들은 다른 라인에 영향을 줄 수 없다.마찬가지로 오른쪽 위부터 왼쪽 아래로 내려오는 라인들을 그었을 때, 각 라인 위에 위치한 비숍들은 다른 라인에 영향을 줄 수 없다. 이 아이디어를 가지고 오른쪽 위 -> 왼쪽 아래로 내려오는 라인들을 해당 라인에서 비숍을 하나 고르고 다른 라인에서 비숍을 고르러 가는 방법으로 백트래킹 했다.(비숍을 하나 골랐을 때, 왼쪽 위 -> 오른쪽 아래 라인에 이미 비숍이 있으면 놓을 수 없다.)그런데 이 ..

    [백준, BOJ 6443] 애너그램 (java)

    https://www.acmicpc.net/problem/6443메모리: 34,256 KB , 시간: 496 ms사용 알고리즘: 백트래킹, 문자열입력받은 문자열에서 사용한 문자의 개수를 담는 visited 배열을 만들어,인덱스에 해당하는 문자가 몇 개 사용됐는지 체크해준다. combi 메소드에서 백트래킹을 통해 현재 사용할 수 있는 문자 중 사전 순으로 빠른 문자부터 스택에 담아주고,사용할 수 있는 문자 개수를 줄여주며 애너그램 조합을 구해주는 방식을 사용했다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stack;public class Main { static char[] string; stat..

    [백준, BOJ 1062] 가르침 (java)

    https://www.acmicpc.net/problem/1062메모리: 89,116 KB , 시간: 264 ms사용 알고리즘: 백트래킹, 브루트포스 알고리즘import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static int K; static int[] count; static ArrayList> list; static boolean[] pick; static int result; public static void main(String[] args) throws Exception{ BufferedReader br = new Bu..

    [백준, BOJ 1174] 줄어드는 수 (java)

    https://www.acmicpc.net/problem/1174 1174번: 줄어드는 수 음이 아닌 정수를 십진법으로 표기했을 때, 왼쪽에서부터 자리수가 감소할 때, 그 수를 줄어드는 수라고 한다. 예를 들어, 321와 950은 줄어드는 수이고, 322와 958은 아니다. N번째로 작은 줄어드는 www.acmicpc.net 메모리: 14,228 KB , 시간: 132 ms 사용 알고리즘: 백트래킹, 브루트포스 알고리즘 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; public class Main { public static void main(String[] args) throws Ex..