19-20 동계 모각코 동아리 8회차 결과

 

백준

브루트포스 n과 m의 첫번째 문제와 두번째 문제를 풀었다.

n과 m(1)

package bj;
import java.util.*;
public class bj_15649 {

	static boolean[] c = new boolean[10];
    static int[] a = new int[10];
    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=1; i<=n; i++) {
            if (c[i]) continue;
            c[i] = true;
            a[index] = i;
            go(index+1, n, m);
            c[i] = false;
        }
    }   
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        go(0,n,m);
    }
}

정해둔 시간내에 풀지 못해 결국 답을 참고해버린 문제이다. 아쉬움이 크다.

n과 m(2)

package bj;
import java.util.*;
public class bj_15650 {

	static boolean[] c = new boolean[10];
    static int[] a = new int[10];
    static void go(int index, int start, 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=start; i<=n; i++) {
            if (c[i]) continue;
            c[i] = true;
            a[index] = i;
            go(index+1, i+1, n, m);
            c[i] = false;
        }
    }   
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        go(0,1,n,m);
    }

}

(1)에서 조건이 추가된 문제이다. 오름차순이라는 조건때문에 go 함수에 start인자를 추가하였다.