import sys
input = sys.stdin.readline
S = input().strip() # S 입력 (가능 여부 판독 문자)
T = input().strip() # T 입력 (조건 문자)
while S != T and len(T) > 0: # T와 S가 같지 않고 T의 길이가 0보다 큰 경우에만 진행
if T[-1] == 'B': # T의 마지막 문자가 B일 경우
T = T[::-1][1:] # T를 뒤집고 처음 문자를 제외하여 T에 저장 (즉, 마지막 B를 제거한 역순)
else: # T의 마지막 문자가 A일 경우
T = T[::-1][1:][::-1] # T를 뒤집고 처음 문자를 제외한 후 다시 뒤집어 T에 저장 (즉, 마지막 A만 제거함)
print(1 if S == T else 0) # S와 T가 같은 경우 1을 출력하고 같지 않을 경우 0을 출력
S부터 시작하지 않은 이유는 S 뒤에 A가 와야할지 B가 와야할지 모르기 때문이다.
반대로 역으로 보았을 때 T의 마지막 문자에 따라서 진행해주면 되기 때문에 T를 보고 해주면 된다.
다른 풀이들을 보니 list로 이용해서 푸는 풀이가 많던데 str를 이용하여 풀고 싶어 A에서는 돌리는 행위가 두 번 들어가 있다..
해당 부분이 불편하면 다른 메소드를 쓰면 되겠지만 왠지 시간초과가 발생할 수도 있을 것 같아서 그냥 두 번 돌렸다.
'Algorithm Test > BaekJoon' 카테고리의 다른 글
BaekJoon 10809 - 알파벳 찾기 (Python) (0) | 2022.03.15 |
---|---|
BaekJoon 10808 - 알파벳 개수 (Python) (0) | 2022.03.11 |
BaekJoon 3036 - 링 풀이 (Python) (0) | 2022.03.07 |
BaekJoon 14225 - 부분수열의 합 (Python) (0) | 2022.03.06 |
BaekJoon 9613 - GCD 합 (Python) (0) | 2022.03.06 |