사용 알고리즘: 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 |