A와 B

홍범선·2023년 12월 25일
0

알고리즘

목록 보기
47/59

문제

풀이

처음 S에서 T를 찾는 경우를 모두 탐색하였다.
하지만 이렇게 하면 시간초과가 발생한다.
왜냐하면 S길이는 999이므로 2**100이라는 큰 연산이 발생하기 때문이다.

다른 방법은
S에서 T를 찾는 것이아니라 T에서 S를 찾아가는 방법인 것이다.

ABBA
1. 마지막 문자가 'A'이므로 제거해준다.
ABB
2. 마지막 문자가 'B'이므로 제거해준다. 그리고 뒤집어준다.
BA
3. 마지막 문자가 'A'이므로 제거해준다.
B
이렇게 T에서 S로 찾아갈 수 있다.

코드

def solution():
    s = sys.stdin.readline().rstrip()
    t = sys.stdin.readline().rstrip()

    q = deque(t)

    while len(s) != len(q):

        if q[-1] == 'A':
            q.pop()

        else:
            q.pop()
            q.reverse()

    if s == ''.join(q):
        print(1)
    else:
        print(0)

solution()
profile
알고리즘 정리 블로그입니다.

0개의 댓글