백준 12919 A와 B 2

전.py / / 2020. 12. 13. 00:39
728x90

https://www.acmicpc.net/problem/12919

 

12919번: A와 B 2

수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈

www.acmicpc.net

# t -> s 로 바꿔감 (t = 'BABB', s = 'B')
# 배열 ㅣ = [['BABB'], []] => 이 상태 계속 유지
# 1. t의 마지막 문자가 'A' 이면 t[ : 마지막 자리] 를 l[1] 에 삽입 (마지막 'A' 제외하고 삽입)
# 2. t의 첫번째 문자가 'B' 이면 t[t의 길이-1 : 0: -1] 를 l[1] 에 삽입 (첫번째 'B' 제외하고 뒤집어서 삽입)
# 3. l[0] 삭제해서 이전 단계 지움. 다시 [] 배열 삽입.
# 새로운 l[0] 모든 요소들에 대해 1,2 수행
# [['BABB'], []] ==> [['BABB'], ['BBA']] (2번) ==> [['BBA'],[]] (3번) ==>
# [['BBA'], ['BB', 'AB']] (1번, 2번) ==> [['BB', 'AB'], []] (3번) ==> 
# [['BB', 'AB'], ['B']] (2번) ==> [['B']] (3번)

s = input()
t = input()
c = len(t)-len(s)
l = [[t]]

for i in range(c):
    l.append([])
    for j in range(len(l[0])):
        if l[0][j][-1] == 'A':
            l[1].append(l[0][j][:len(l[0][0])-1])
            
        if l[0][j][0] == 'B':
            l[1].append(l[0][j][len(l[0][0])-1:0:-1])
    del l[0]

result = 0
if s in l[0]:
    result = 1
    print(1)
    
if result == 0:
    print(0)

반응형

'전.py' 카테고리의 다른 글

백준 2193 이친수  (0) 2020.12.13
백준 1543 문서검색  (0) 2020.12.13
백준 1434 책 정리  (0) 2020.12.13
백준 2015 수들의 합 4 (실패)  (0) 2020.12.13
백준 1002 터렛  (0) 2020.12.13
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기