BOJ 12904 A와 B

LONGNEW·2021년 5월 10일
0

BOJ

목록 보기
226/333
post-thumbnail

https://www.acmicpc.net/problem/12904
시간 2초, 메모리 512MB
input :

  • 첫째 줄에 S(1 ≤ S의 길이 ≤ 999)
  • 둘째 줄에 T(2 ≤ T의 길이 ≤ 1000)

output :

  • S를 T로 바꿀 수 있으면 1을 없으면 0을 출력

조건 :

  • 문자열의 뒤에 A를 추가한다.
  • 문자열을 뒤집고 뒤에 B를 추가한다.

개 신박.... ㅋㅋㅋㅋㅋ 뭔가 오랜만에 본 듯한 느낌이다.
S -> T로 갈 수 있는지 ,아니면 T -> S가 가능한 지 확인을 하자.

S -> T로 하려면 2가지 경우가 발생한다. 그러니까 T -> S로 올수 있는지 확인을 하는 것이 훨 빠르다.
'A'로 끝나는 경우 : S 문자열에 A를 추가했다는 것.
'B'로 끝나는 경우 : S 문자열을 뒤집고 B를 추가했다는 것.

그래서 이를 뒤에서 부터 한다고 생각을 하면 된다.
'A'로 끝나는 경우 : 문자열에서 가장 뒤에 것을 삭제.
'B'로 끝나는 경우 : 문자열에서 가장 뒤에 것을 삭제하고 문자열을 뒤집자.

import sys

target = list(sys.stdin.readline().strip())
data = list(sys.stdin.readline().strip())

while len(data) > len(target):
    if data[-1] == "A":
        data.pop()
    else:
        data.pop()
        data.reverse()

print(1 if data == target else 0)

0개의 댓글