ABOUT ME

Today
Yesterday
Total
  • 10974 모든 순열
    백준/백트래킹 2024. 7. 13. 12:35
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.StringTokenizer;
    
    public class Main {
     
    	static int number[];
    	static boolean visit[];
    	static int result[];
    	static int N;
    	
        public static void main(String[] args) throws IOException {
          
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            N = Integer.parseInt(st.nextToken());
            
        	number = new int[N];
        	visit = new boolean[N];    	
        	result = new int[N];    
        	
        	for(int i=0; i<N; i++) {
        		number[i] = i+1;
        	}    	
        
        	dfs(0);
        	
        }
        
        
        public static void dfs(int depth) {    	
       
        	if(depth==N) {      		
        		for(int i=0; i<N; i++) {
        			System.out.print(result[i] + " ");
        		}
        		System.out.println();    		
        		return;
        	}
        	
        	for(int i=0; i<N; i++) {
        		
        		if(!visit[i]) {
        			
        			visit[i] = true;
        			result[depth] = number[i];
        			dfs(depth+1);
        			visit[i] = false;
        			
        		}    		
        	}  	
        	
         }
        }

     

     

     

    참고 블로그 : https://velog.io/@gangintheremark/DFS-%EC%A4%91%EB%B3%B5-%EC%97%86%EB%8A%94-%EC%88%9C%EC%97%B4-%EA%B5%AC%ED%95%98%EA%B8%B0

     

    '백준 > 백트래킹' 카테고리의 다른 글

    15684 사다리 조작  (0) 2024.06.26

    댓글

Designed by Tistory.