백트레킹

백트레킹

    프로그래머스 코딩테스트 연습 Level1 - 소수 만들기 [ Java ]

    코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 에라토스테네스의 체로 주어진 범위안에 소수들을 모두 표시하고 백트레킹을 사용해 모든 조합을 구해서 소수인지를 판단합니다. import java.util.*; class Solution { static boolean[] isPrime = new boolean[3000]; static int[] num = new int[3]; static int[] arr; static boolean[] visited; static int result = 0; ..

    백준 1759번 암호 만들기 [ Java ]

    1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int n, r; static char[] ch; static char[] in; static boolean[] visited; static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br =..

    백준 1182번 부분수열의 합 [ Java ]

    1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int n, s, r; static int[] num; static int[] arr; static boolean[] visited; static int count = 0; public static void main(String[] args) throws IOException { BufferedReader br ..

    백준 6603 로또 [ Java ]

    6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int n; static int[] num = new int[6]; static boolean[] visited; static int[] arr; static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { ..

    백준 15666번 N과 M (12) [ Java ]

    15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int n, r; static int[] num; static int[] arr; static LinkedHashSet set = new LinkedHashSet(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(n..

    백준 15665번 N과 M (11) [ Java ]

    15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int n, r; static int[] num; static int[] arr; static LinkedHashSet set = new LinkedHashSet(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(n..

    백준 15664번 N과 M (10) [ Java ]

    15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int n, r; static int[] num; static int[] arr; static boolean[] visited; static LinkedHashSet set = new LinkedHashSet(); public static void main(String[] args) throws IOException { BufferedReader..

    백준 15663번 N과 M (9) [ Java ]

    15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int n, r; static int[] num; static int[] arr; static boolean[] visited; static LinkedHashSet set = new LinkedHashSet(); public static void main(String[] args) throws IOException { BufferedReader ..

    백준 10819번 차이를 최대로 [ Java ]

    10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 백트레킹을 이용하여 풀었습니다. import java.util.*; public class Main { static int max = 0; static int n; static int[] arr; static int[] newArr; static boolean[] visited; public static void main(String[] args){ Scanner sc = new Scanner(System.in); n = sc.nextInt(); arr = new int[n];..