알고리즘/백준

14534_String Permutation

베리영young 2024. 7. 8. 01:34

사용 알고리즘: permutation (일종의 dfs)

사용 언어: java

 

package afterMiracom_0618;

import java.io.*;
import java.util.*;

public class Main_bj_14534_StirngPermutation {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		for(int i=1; i<=n; i++ ) {
			String s = sc.next();
			System.out.println("Case # "+i+":");
			boolean[] visit = new boolean[s.length()];
			char[] ans = new char[s.length()];
			
			permutation(s, visit, ans, 0);
		}
		
	}

	private static void permutation(String s, boolean[] visit, char[] ans, int cnt) {
		if(cnt == s.length()) {
			for(int i=0; i<s.length(); i++) System.out.print(ans[i]);
			System.out.println();
			return;
		}
		
		for (int i = 0; i < s.length(); i++) {
			if(!visit[i]) {
				visit[i] = true;
				ans[cnt] = s.charAt(i);
				permutation(s, visit, ans, cnt+1);
				visit[i] = false;
			}
		}
		
	}

}

 

오~~

순조부

'알고리즘 > 백준' 카테고리의 다른 글

17135_캐슬 디펜스 !!!  (0) 2024.07.10
1051_숫자 정사각형  (0) 2024.07.08
7569_토마토  (0) 2024.07.08
2470_두 용액  (0) 2024.07.03
3273_두 수의 합  (1) 2024.07.03