알고리즘/문제풀이

[DFS] 로또

lipnus 2019. 3. 31. 23:09
반응형

백준 6603번 로또

https://www.acmicpc.net/problem/6603

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

    static int[] group;
    static int[] visited;

    public static void main(String[] args) throws Exception{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st;

    while(true){
        st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        if(N==0) return;

        group = new int[N];
        visited = new int[N];
        for(int i=0; i<N; i++){
        group[i] = Integer.parseInt(st.nextToken());
    }

    dfs(0, new int[6], 0);
    System.out.println();
    }

}

    static void dfs(int index, int[] arr, int target){

            if(index==arr.length){
                print(arr);
                return;
            }

        for(int i=target; i<group.length; i++){
            arr[index] = group[i];
            dfs(index+1, arr, i+1);
        }
	}


    static void print(int[] arr) {
        for (int a : arr) {
            System.out.printf("%d ", a);
        }
            System.out.println();
        }
    }

 

참고: https://idea-sketch.tistory.com/29 (백트래킹)

반응형

'알고리즘 > 문제풀이' 카테고리의 다른 글

[브루트포스] 감시  (0) 2019.04.03
[시뮬레이션] 톱니바퀴  (0) 2019.04.02
[브루트포스] 스타트와 링크  (0) 2019.03.31
[시뮬레이션] 연산자 끼워넣기  (0) 2019.03.31
[시뮬레이션] 로봇청소기  (0) 2019.03.31