[Python] 백준 12919: A와 B 2
https://www.acmicpc.net/problem/12919
12919번: A와 B 2
수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈
www.acmicpc.net
Logic
S에 'A'를 더하거나 'B'를 더하고 뒤집는 연산을 하려고 했으나 시간 상의 문제가 있어 T에서 끝 문자가 'A'로 끝나는 경우는 연산 1을 한 것이니 연산 1의 수행 전으로 돌아가고, 첫 문자가 'B'로 시작하는 경우는 연산 2를 한 것이니 연산 2의 수행 전으로 돌아간다. 만일 T의 길이가 S보다 작아진 경우 불가능하다는 것이고 return을 한다. 만일 T와 S가 같은 경우 print(1)을 한 후 코드를 탈출한다. 코드를 탈출하지 않은 경우 print(0)을 해준 후 코드를 마무리한다.
ANS
def op(T, lenT):
if lenT < len(S):
return
if T == S and lenT == len(S):
print(1)
exit()
tmp = T
if T[-1] == 'A':
op(T[0:-1], lenT-1)
T = tmp
if T[0] == 'B':
T = T[1:]
op(T[::-1], lenT-1)
S = list(input())
T = list(input())
lenT = len(T)
op(T,lenT)
print(0)'알고리즘 > 백준' 카테고리의 다른 글
| [Python] 백준 : 13164 행복 유치원 (0) | 2023.05.14 |
|---|---|
| [Python] 백준 2468 : 안전 영역 (0) | 2023.05.11 |
| [Python] 백준 14502: 연구소 (1) | 2023.05.06 |
| [Python] 백준 10026 : 적록색약 (0) | 2023.05.05 |
| [Python] 백준 2644: 촌수 계산 (0) | 2023.05.01 |
TAGS.
