알고리즘/문제풀이

[Python] 백준 12904 A와 B

정찡이 2021. 9. 18. 14:45
728x90

1. 문제 링크

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

 

12904번: A와 B

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

www.acmicpc.net


2. 문제 요약

S를 T로 만들 수 있는지 확인


3. 아이디어 정리

s를 t로 바꾸는 것이 아닌 t를 s로 바꾼다. 반대로 확인해야 모든 경우를 확인하지 않을 수 있다.

  1. A가 있는 경우 반대로 뒤에서 제거한다.
  2. B가 있는 경우 B를 제거하고 뒤집는다.
  3. S==T 같으면 그만 확인한다.

4. 문제 풀이

4-1. 내 풀이

import sys

s = list(sys.stdin.readline().strip())
t = list(sys.stdin.readline().strip())
result = 0
while t:
    if t[-1] == "A":
        t.pop()
    elif t[-1] == "B":
        t.pop()
        t = t[::-1]
    if s == t:
        result = 1
        break
print(result)

 


5. 결론

  • 문자열 다루기 문제. 반대로 생각하면 더 쉽다.
반응형