[알고리즘]/알고리즘
[알고리즘] 백준 1759. 암호 만들기
쿠릉쿠릉 쾅쾅
2022. 2. 22. 12:23
728x90
https://www.acmicpc.net/problem/1759
1759번: 암호 만들기
첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다.
www.acmicpc.net
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int L;
static int C;
static String[] arr;
static String[] result;
static String alpa = "aeiou";
static StringBuilder sb = new StringBuilder();
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
L = sc.nextInt();
C = sc.nextInt();
arr = new String[C];
result = new String[L];
for(int i=0; i<C; i++) {
arr[i] = sc.next();
}
Arrays.sort(arr);
DFS(0,0);
System.out.println(sb.toString());
}
static void DFS(int cnt, int start) {
if(cnt==L) {
int mo = 0;
int ja = 0;
for(int i=0; i<L; i++) {
if(alpa.contains(result[i])) {
mo++;
continue;
}
ja++;
if(mo!=0 && ja >=2) {
for(String s : result)
sb.append(s);
sb.append("\n");
return;
}
}
return;
}
for(int i=start; i<C; i++) {
result[cnt] = arr[i];
DFS(cnt+1, i+1);
}
}
}
728x90