on
[백준][Java] 1759번 암호 만들기 (백트래킹, 브루트포스)
[백준][Java] 1759번 암호 만들기 (백트래킹, 브루트포스)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
private static BufferedReader br = new BufferedReader( new InputStreamReader( System . in ));
private static BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( System . out ));
static int L;
static List < Character > list;
private static boolean isVowel( char c) {
if (c = = 'a' | | c = = 'e' | | c = = 'i' | | c = = 'o' | | c = = 'u' )
return true ;
else
return false ;
}
private static void prtPw( int idx, int pos, StringBuilder sb) throws IOException {
if (pos = = L) {
int vowel = 0 ;
int conso = 0 ;
for ( int i = 0 ; i < sb. length (); i + + ) {
if (isVowel(sb. charAt (i)))
vowel + + ;
else
conso + + ;
if (vowel > = 1 & & conso > = 2 ) {
bw.write(sb. toString () + "
" );
return ;
}
}
return ;
}
for ( int i = idx; i < list.size(); i + + ) {
sb.append(list.get(i));
prtPw(i + 1 , pos + 1 , sb);
sb.deleteCharAt(sb. length () - 1 );
}
}
public static void main( String [] args) throws IOException{
String [] str = br.readLine(). split ( " " );
L = stoi(str[ 0 ]);
int C = stoi(str[ 1 ]);
char [] arr = br.readLine().toCharArray();
list = new ArrayList < > ();
for ( int i = 0 ; i < C; i + + )
list. add (arr[ 2 * i]);
Collections.sort(list);
prtPw( 0 , 0 , new StringBuilder());
bw.flush();
bw.close();
}
private static int stoi( String input) {
return Integer. parseInt (input);
}
}
from http://aig2029.tistory.com/320 by ccl(A) rewrite - 2021-10-04 14:02:01