본문 바로가기

Algorithm/BaekJoon

[백준 12904] A와 B python

반응형

문제

문자열 S, T가 주어질 때 2가지 규칙에 의해 S를 T로 변경할 수 있는지 출력하는 문제이다.

풀이

  • 기본 아이디어 
    • S의 길이 <= T의 길이 이므로
    • S가 T가 되었는지 확인하는 것보다 T가 S가 되는지 확인하면 더 쉽게 풀림
  • 규칙 변경
    • 문자열 뒤에 A를 추가한다 -> 마지막 문자열이 A라면 A를 제거한다.
    • 문자열을 뒤집고 뒤에 B를 추가한다. -> 마지막 문자열이 B라면 B를 제거하고, 문자열을 뒤집는다.
  • 파이썬 구현
    • 문자열을 뒤집고, 마지막 문자열을 제거하는 동작을 해야하므로 리스트 이용

통과된 풀이

s = list(input()) # 문자열 S
t = list(input()) # 문자열 t

success = False 

while len(s) != len(t):
    if t[-1] == 'A': # 규칙 1
        t.pop()
    elif t[-1] == 'B': # 규칙 2
        t.pop()
        t = t[::-1]
    if s == t:  # 성공 여부 체크
        success = True

if success:
    print(1)
else:
    print(0)
반응형