수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다.
이런 사실에 놀란 수빈이는 간단한 게임을 만들기로 했다. 두 문자열 S와 T가 주어졌을 때, S를 T로 바꾸는 게임이다. 문자열을 바꿀 때는 다음과 같은 두 가지 연산만 가능하다.
from collections import deque
A = input() # A값 받아오기.
B = deque(input()) # B값 받아오기. pop과 popleft를 사용할 예정이므로 deque로 만들기
reverse_flag = 0 # 뒤집혔는지 아닌지를 판별하는 변수 선언
while len(B)> len(A): # B의 길이가 A의 길이와 같아질 때까지 반복
if reverse_flag: # 만약 뒤집혀있으면
if B[0] == 'A': # 첫번째 변수를 확인함
B.popleft()
else:
B.popleft()
reverse_flag = 0
else: # 만약 뒤집히지 않았으면
if B[-1] == 'A': # 마지막 변수를 확인함
B.pop()
else:
B.pop()
reverse_flag = 1
res_B = ''.join(B) # 비교를 위해서 B를 문자열로 만듦
if reverse_flag: # 만약 뒤집혀있을 경우에는
if res_B[::-1] == A: # B를 뒤집어서 비교
print(1)
else:
print(0)
else:
if res_B == A:
print(1)
else:
print(0)
def DFS(A,B,f): # DFS를 이용해서 B로 변환할 수 있는지 확인
if len(A) == len(B): # B의 길이와 같아진다면
if f: # 만약 뒤집혀있다면
if A[::-1] == B: # A를 뒤집어서 비교
print(1) # 성공한다면, 더이상 진행할 필요가 없으니 exit로 탈출
exit()
else: # 아니라면
if A == B: # A와 B를 비교
print(1)
exit()
return
if not f:
DFS('B'+A, B, 1)
DFS(A+'A',B,0)
else:
DFS(A+'B',B,0)
DFS('A'+A,B,0)
A = input()
B = input()
DFS(A,B,0)
print(0) # DFS를 돌렸는데도 값이 나오지 않았으면 0을 프린트