728x90
https://www.acmicpc.net/problem/12919
12919번: A와 B 2
수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈
www.acmicpc.net
A와 B 1번 문제에 이어서 2번 문제이다.
A와 B 1번 문제는 while문을 이용해 T에서부터 S를 만들어 나갈 수 있었지만, 2번 문제 같은 경우 while 문을 이용하기엔 다양한 경우의 수가 존재해서 재귀 + 브루트 포스를 이용해 풀었다.
import sys
#sys.setrecursionlimit(10**6)
input = sys.stdin.readline
def dfs(s,t):
if s==t:
return 1
if len(t)<=len(s):
return 0
ans = 0
if t[-1] == 'A': # 마지막이 A면 그냥 제거
ans = dfs(s,t[:-1])
if ans == 1:
return 1
if t[0]=='B': # 처음이 B면 reverse 후 제거
ans = dfs(s,t[::-1][:-1])
return ans
if __name__ == "__main__":
S = list(input().rstrip())
T = list(input().rstrip())
print(dfs(S,T))
728x90
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/파이썬] 13549번 숨바꼭질 3 (0) | 2023.07.08 |
---|---|
[백준/파이썬] 1041번 주사위 (0) | 2023.05.31 |
[백준/파이썬] 1111번 IQ Test (0) | 2023.05.26 |
[백준/파이썬] 17144번 미세먼지 안녕! (0) | 2023.05.04 |
[백준/파이썬] 2877번 4와 7 (0) | 2023.04.26 |