JAVA
백준 알고리즘 17255
daehee719
2024. 3. 29. 19:00
728x90
import java.io.*;
import java.util.*;
public class Main {
static BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
static String s;
static Set<String> set = new HashSet<>();
public static void main(String[] args) throws IOException
{
s = bf.readLine();
for (int i = 0; i < s.length(); i++) {
dfs(i,i,String.valueOf(s.charAt(i)), "", "");
}
System.out.println(set.size());
}
public static void dfs(int left, int right, String newWay, String cur, String result)
{
result = result + cur + newWay;
boolean canGoLeft = left - 1 < 0 ? false:true;
boolean canGoRight = right + 1 > s.length()-1 ? false:true;
if( !canGoLeft&&!canGoRight)
{
//System.out.println(result);
set.add(result);
return;
}
if(canGoLeft)
{
String news = String.valueOf(s.charAt(left-1));
dfs(left - 1,right, news, cur + newWay, result);
}
if(canGoRight)
{
String news = String.valueOf(s.charAt(right+1));
dfs(left,right+1, news,cur + newWay,result);
}
}
}
728x90