S, T = [list(input()) for _ in range(2)]
temp = T
for i in range(len(T) - 1, -1, -1):
if i + 1 == len(S):
break
if temp[i] == 'A':
temp = temp[:i]
else:
temp = temp[:i]
temp = temp[::-1]
if temp == S:
print(1)
else:
print(0)
내가 짠 소스
S, T = [list(input()) for _ in range(2)]
while len(S) != len(T):
if T[-1] == 'A':
T.pop()
else:
T.pop()
T = T[::-1]
print(1 if S == T else 0)
다른분이 짠 소스
우선 이 문제도 스스로 생각해내지 못했다.
S를 T로 만드는 방법을 고민했는데, 잘 모르겠어서 검색해봤다. (그리 깊이 고민하지 않았다. 생각을 하기가 좀 귀찮았고 왠지 빠르게 답을 알고 싶기도 했다)
S를 T로 만드는건 어렵지만 T를 S 로 만들 수 있는지 확인하는건 그리 어렵지 않다.
T에서 A를 만나면 빼고 B 를 만나면 빼고 뒤집는 행위를 반복하여 S와 T의 길이가 같아졌을때, 두 문자가 동일한지만 확인하면 된다.
그런데 문제는 내가 짠 소스와 다른분이 짠 소스가 차이가 제법 난다는 것이다.
돌아가는 로직이야 동일하지만, 다른분이 짠 소스가 확실히 명확하고 버그 발생할 확률이 낮았다.
좀 더 노력하고. 좀 다양하게 생각하는 법을 배워야겠다.