백준
n과 m(5)
package bj;
import java.lang.reflect.Array;
import java.util.*;
public class bj_15654 {
static boolean[] c = new boolean[8];
static int[] a = new int[8];
static int[] arr;
static void go(int index, int n, int m)
{
if(index == m)
{
for(int i = 0; i<m; i++)
{
System.out.print(a[i]);
if (i != m-1) System.out.print(' ');
}
System.out.println();
return;
}
for(int i = 0; i<n; i++)
{
if(c[i]) continue;
c[i] = true;
a[index] = arr[i];
go(index+1, n, m);
c[i] = false;
}
return;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
arr = new int[n];
for(int i = 0; i<n; i++)
{
arr[i] = sc.nextInt();
//System.out.println(arr[i]);
}
Arrays.sort(arr);
go(0, n, m);
}
}
n과 m(6)
package bj;
import java.util.*;
public class bj_15655 {
static boolean[] c = new boolean[8];
static int[] a = new int[8];
static int[] arr;
static void go(int index, int start, int n, int m)
{
if(index == m)
{
for(int i = 0; i<m; i++)
{
System.out.println(a[i]);
if (i != m-1) System.out.print(' ');
}
return;
}
for(int i = start; i<n; i++)
{
if(c[i]) continue;
c[i] = true;
a[index] = arr[i];
go(index+1, i+1, n, m);
c[i] = false;
}
return;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
arr = new int[n];
for(int i = 0; i<n; i++)
{
arr[i] = sc.nextInt();
//System.out.println(arr[i]);
}
Arrays.sort(arr);
go(0, 0, n, m);
}
}
n과 m(7)
package bj;
import java.util.*;
public class bj_15656 {
static boolean[] c = new boolean[8];
static int[] a = new int[8];
static int[] arr;
static StringBuilder go(int index, int n, int m)
{
if(index == m)
{
StringBuilder sb = new StringBuilder();
for(int i = 0; i<m; i++)
{
sb.append(arr[a[i]]);
if (i != m-1) sb.append(" ");
}
sb.append("\n");
return sb;
}
StringBuilder ans = new StringBuilder();
for(int i = 0; i<n; i++)
{
//if(c[i]) continue;
c[i] = true;
a[index] = i;
ans.append(go(index+1, n, m));
c[i] = false;
}
return ans;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
arr = new int[n];
for(int i = 0; i<n; i++)
{
arr[i] = sc.nextInt();
//System.out.println(arr[i]);
}
Arrays.sort(arr);
System.out.println(go(0, n, m));
}
}
과제로 풀어온 n과 m(1) ~ (4) 문제들의 응용이기 때문에 많은 시간을 필요로 하지않았다.
StringBuilder를 언제 쓰면 좋은지 아직 잘 모르겠다.
다음과제는 남은 n과 m 문제와 다음 수열, 이전 수열, 모든 수열 문제이다.