12919A와 B 2

LJM·2023년 1월 11일
0

백준풀기

목록 보기
29/259

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;

    }
}
profile
게임개발자 백엔드개발자

0개의 댓글