https://www.acmicpc.net/problem/12919
bruteforce 알고리즘으로 메모리초과 시간초과가 나서 막혀서 결국 풀이를 보고 풀었다..
거꾸로 T를 줄여가면서 풀 생각은 전혀 못했다;;
아마 문제의 의도와 다른 방식으로 푼게 아닐까 생각해봄
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String S = br.readLine();
String T = br.readLine();
StringBuilder sb = new StringBuilder();
sb.append(T);
if(search( sb, S))
System.out.println(1);
else
System.out.println(0);
}
static boolean search( StringBuilder sb, String S)
{
if(S.length() == sb.length())
{
if(S.equals(sb.toString()))
return true;
return false;
}
boolean ret = false;
StringBuilder sbcopy = new StringBuilder(sb);
if('A' == sb.charAt(sb.length()-1))
{
sb.delete(sb.length()-1, sb.length());
if(search(sb, S))
return true;
}
if('B' == sbcopy.charAt(0))
{
sbcopy.delete(0, 1);
sbcopy.reverse();
if(search(sbcopy, S))
return true;
}
return false;
}
}