[백준][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