목록Other_Codes (5)
Jun's Development Journey
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int cnt; static void swap(int[] arr,int idx1, int idx2) { int tmp = arr[idx1]; arr[idx1] = arr[idx2]; arr[idx2] = tmp; } static void permutation(int[] arr, int st, int len) { if(st == len-1) { for(int i=0;i
코드 1) 조합을 구한 뒤에 그 조합으로 순열 구하는 방식 (nCr -> rPr) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 import java.util.*; public class Main { //조합을 구한 후 순열 구하는 방식 => 두 개의 함수 재귀를 이용 static int[] comb; //nPr 구하는 순열 함수 public static void permutation(int n, int r, int[] arr) { comb = new int[r]; dfs_comb(n,r,0,0,arr); ..
코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.util.*; public class Main { static int[] comb;//조합 담을 배열 public static void combination(int n, int r, int[] arr) { comb = new int[r];//조합을 이룰 항목수로 임시 배열 크기 지정 dfs(n,r,0,0,arr); } public static void dfs(int n, int r, int st, int depth, int[] arr) { if(depth == r) { for(int i=0;i
문제 4, 13, 413, 134와 같이 숫자가 13과 4를 이용해서 만들 수 있는 수를 불길한 수라고 한다. 그리고 불길한 수가 오름차순으로 나열된 수열을 불길한 수열이라고 한다. 예를 들어 불길한 수열은 다음과 같이 나열될 수 있다. ex) S = {4, 13, 44, 134, 413, 444, 1313......} n이 매개변수로 주어질 때, 불길한 수열에서 n번째 불길한 수를 구하시오. 풀이 이 문제는 ArrayList를 Queue처럼 사용하여 풀었다. 처음에 큐에 4와 13을 넣어주고, dequeue 횟수가 주어진 n보다 작을 때까지 제일 앞의 요소를 꺼내어 4와 13을 뒤에 추가하여 리스트에 넣어주었다. n개가 리스트에 저장이 되면 오름차순으로 정렬을 해준 후, 해당 위치의 값을 리스트에서 뽑..
문제 서로 다른 크기의 밀폐용기들이 있다. 앞의 용기의 크기가 뒤 용기보다 작으면 큰 용기에에 작은 용기를 넣어서 정리할 수 있다. 무작위로 배열되어있는 용기의 크기 배열이 주어졌을 때, 정리될 수 있는 용기의 수는? 예시1) [1,3,5,4,2] => 2 1은 3보다 작으니 3에 넣을 수 있고, 1은 5보다 작으나 3에 포함되므로 카운팅하지 않는다. 1을 포함한 3은 5보다 작으니 넣어서 정리할 수 있다. 따라서 2번 가능하다. 예시2) [3,1,5,2,4] => 3 5는 3,1 두 개를 넣을 수 있고, 2는 4에 들어갈 수 있다. 따라서 총 3번 가능하다. 풀이 1) boolean형의 arrangement 배열로 방문 체크하는 방법 (Java) 1 2 3 4 5 6 7 8 9 10 11 12 13 1..