DFS - 12919번: A와 B 2

jisu_log·2025년 5월 29일

알고리즘 문제풀이

목록 보기
32/105


S -> T로 정방향 탐색(시간초과)보다 T -> S로 역방향 탐색하는 것이 경우의 수가 훨씬 적어 효율적이기 때문에 시간초과가 나지 않음!

s = input()
t = input()
found = False


# s -> t가 아닌 t -> s로 역방향 탐색하기(경우의 수 감소)
def dfs(s, t):
    sum = 0
    global found
    if found: # 이미 찾았다면 종료
        return 0
    
    if s == t:
        found = True
        #print(1)
        #exit()
        return 1
    if len(s) > len(t):
        return 0

    if t[-1] == 'A':
        sum += dfs(s, t[:-1])
    if t[0] == 'B':
        sum += dfs(s, t[1:][::-1])

    return sum


print(dfs(s, t))

0개의 댓글