
처음 문제를 보고 T의 끝 문자만 보면 되겠다 생각했다.
A이면 그냥 제거하면 되고, B이면 제거 후 역전하면 된다.
그래서 제거가 편하도록 Stack을 사용하면 되나? 싶었지만, 스택을 뒤집을 마땅한 방법이 떠오르지 않았다.
Stack이 아니라 StringBuilder를 사용하면 reverse()로 쉽게 뒤집을 수 있었다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
String t = br.readLine();
int sLen = s.length();
int tLen = t.length();
while (true) {
if (t.equals(s)) {
System.out.println(1);
System.exit(0);
}
tLen = t.length();
if (tLen <= sLen) {
System.out.println(0);
System.exit(0);
}
char pop = t.charAt(tLen - 1);
if (pop == 'B') {
t = t.substring(0, tLen - 1);
t = new StringBuilder(t).reverse().toString();
} else {
t = t.substring(0, tLen - 1);
}
}
}
}
