문제풀이/백준

12904 - A와 B

동바리 2023. 5. 21. 16:50
import sys

def run():
    src_str = input()
    dst_str = input()

    for i in range(0, len(dst_str)):
        if (src_str == dst_str):
            print(1)
            return
        
        if dst_str[len(dst_str) - 1]   ==  'A':
            dst_str = dst_str[0:len(dst_str) - 1]
        else:
            dst_str = dst_str[0:len(dst_str) - 1]
            dst_str = dst_str[::-1]

    print(0)

run()

문제 :

12904번: A와 B (acmicpc.net)

 

12904번: A와 B

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

www.acmicpc.net

 

  1. src 스트링에서 dst 스트링으로 바꿀 수 있는지 확인하는 문제였습니다.
  2. src 스트링에서 dst 스트링으로 바꾸려고하면 많은 경우의 수 때문에 시간 초과가 발생하게 됩니다.
  3. 따라서 dst 스트링에서 src으로 바꿀 수 있는지를 확인합니다.
  4. dst 스트링에서 src 스트링으로 바꾸더라도, 결국 src에서 dst로 바꾸는거와 다르지 않냐라고 생각할 수 있습니다.
  5. 하지만 dst에서 src로 바꾸는것은 dst에서 src로 바꿀 수 있다는 전제를 두고 진행합니다.
  6. 따라서 1번 2번 연산을 거꾸로 해주기만 하면 됩니다.
  7. ABBA의 경우입니다.
    • 끝이 A이기 때문에 A를 삭제합니다. -> ABB
    • 끝이 B이기 때문에 B를 삭제하고 순서를 뒤집습니다. -> AB -> BA
    • 끝이 A이기 때문에 A를 삭제합니다. -> B
  8. B가 나왔습니다.
  9. 위와 같이 진행해서 dst에서 src로 변환 안되면 0을 출력 그렇지않다면 1을 출력합니다.