package test;

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

//백준
public class Main {
	
	static int[] array;
	static boolean[] visited;
	static int size;
	
	
	
	public static void dfs(int start, int depth) {
		if(depth==6) {
			for(int i=0; i<size; i++) {
				if(visited[i]==true) {
					System.out.print(array[i]+" ");
				}
			}System.out.println();
		}

		for(int i=start; i<size; i++) {
			visited[i]=true;
			dfs(i+1,depth+1);
			visited[i]=false;

		}
		
		
		
		
		
		
	}
	

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

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

		

		
		
		while (true) {
			
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			
			size = Integer.parseInt(st.nextToken());
			
			if(size==0) {
				break;
			}

			array = new int[size];
			visited = new boolean[size];

			for (int i = 0; i < size; i++) {
				array[i] = Integer.parseInt(st.nextToken());
			}

			dfs(0,0);
			System.out.println();

		}

	}

}

i가 start 까지 증가하다보니 거기서 차이가 나기 시작한다.

 

해당 문제는 다시 풀어보는게 좋을듯 하다.

 

 

 

'알고리즘(BOJ) > Silver' 카테고리의 다른 글

백준 - 1260(DFS&BFS)  (0) 2023.01.21
2667 - 단지번호붙이기 (BFS)  (0) 2023.01.11
10451 - 순열 사이클 (순열)  (0) 2022.12.29
1010 - 다리 놓기 (조합)  (0) 2022.12.29
2178 - 미로찾기 (BFS)  (0) 2022.12.26
복사했습니다!