본문 바로가기

전체 글

(166)
[백준 JAVA] 6603번: 로또 https://www.acmicpc.net/problem/6603 import java.io.*;import java.util.*;public class Main { public static int n = 1, MIN = 10000000; public static int[] a; public static int[] arr = new int[6]; public static StringBuilder sb = new StringBuilder(); public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (n != 0) { n = sc.nextInt(); a = new int[n]; for (int i =..
[백준 JAVA] 10971번: 외판원 순회 2 https://www.acmicpc.net/problem/10971 dfs로 모든 경우의 수를 구해준 뒤 각각의 경우에 수에 따라 값을 넣어주고 최소값을 출력하도록 만들어 줬다. import java.io.*;import java.util.*;public class Main { public static int n, MIN = 10000000; public static int[][] a; public static int[] arr; public static boolean[] visit; public static StringBuilder sb = new StringBuilder(); public static void main(String[] args) { Scanner sc = new Scanner(Sys..
[백준 JAVA] 10819번: 차이를 최대로 https://www.acmicpc.net/problem/10819 dfs를 이용해서 하나하나 다 계산해주는 방법을 사용했다.  import java.io.*;import java.util.*;public class Main { public static int[] a, arr; public static int n, Max = -1; public static boolean[] visit; public static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); n = sc.nextInt(); a = ..
[백준 JAVA] 10974번: 모든 순열 https://www.acmicpc.net/problem/10974 import java.io.*;import java.util.*;public class Main { public static int[] a; public static int n; public static boolean[] visit; public static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); n = sc.nextInt(); a = new int[n]; visit = new boolean[n]; dfs(0); ..
[백준 JAVA] 10973번: 이전 순열 https://www.acmicpc.net/problem/10973import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); int n = sc.nextInt(); int a[] = new int[n]; for(int i=0; i 0 && a[i] > a[i - 1]) { i -= 1; } //i의 위치가 0이면 내림차순(마지막 순열) if(i= i 이면서 A[j] > A[i-1] 을 만족하는 ..
[백준 JAVA] 10972번: 다음 순열 https://www.acmicpc.net/problem/10972 재귀를 이용해서 순열을 구하는 것처럼 배열을 Arrays.equal로 비교한뒤 같으면 다음 순열을 출력하도록 짜봤다.import java.util.Arrays;import java.util.Scanner;public class Main { public static int n; public static StringBuilder sb = new StringBuilder(); public static boolean[] visit; public static int[] arr; public static boolean bool; public static int[] a; public static void main(String[] args) { Sc..
[백준 JAVA] 15666번: N과 M (12) - 중복 입력 값 중복 조합 https://www.acmicpc.net/problem/15666. 마찬가지로 조합으로 풀면 된다.  at을 추가하자. 마찬가지로 중복된 값을 허용하므로 dfs에 넣을때는 이전에 넣었던 자기 자신 값까지 추가 할 수 있도록 dfs(i, depth + 1)해준다. import java.util.Arrays;import java.util.Scanner;public class Main { public static int n, m; public static int[] a; public static int[] arr; public static boolean[] visit; public static StringBuilder sb = new StringBuilder(); public static void main(..
[백준 JAVA] 15665번: N과 M (11) - 중복 입력 값 중복 순열 https://www.acmicpc.net/problem/15665 -옆에 쓴거는 실제 문제 이름이 아니고 내가 알아보기 쉽게 하기 위해서 부재처럼 달아둔 것이다. 이번에는 좀 괴랄해졌다. 비슷한 바리에이션으로 가는 것 같다. 12까지 순열 조합이 왔다갔다하면서 입력값을 주고 안주고의 차이를 보여주고 중복된 값을 허용할 것인지 중복된 입력을 허용할 것인지 물어본다.  이 문제에서는 (9) 중복 입력 값 순열에서 같은 수를 여러번 골라도 되는 순열이다. 그렇다고 해서9 99 9 이런식으로 완전히 같은 값을 나오게 하면 안된다. 7 7  이런식으로 앞에 항목에 넣었던 값을 다시 가져도 된다는 말이다. visit를 생략해보자. import java.util.Arrays;import java.util.Scann..