풀이법까지 완전히 동일하다. S에서 시작해서 완전탐색하기보다는, T에서 시작해서 그리디하게 제거해나가기. 단 조건의 차이가 있는데, S, T의 길이가 본 문제가 훨씬 크다. 즉 탐색 효율성으로 승부해야 한다.
풀이 코드
S = input().strip()
T = input().strip()
q = [T]
while q :
t = q.pop()
if t == S :
print(1)
exit()
if len(t) == len(S) :
continue
if t[-1] == 'A' :
q.append(t[:-1])
else :
q.append(t[:-1][::-1])
print(0)