1. 문제

12904번: A와 B

2. 개요

문자열 뒤에 ‘A’ 붙이기, 문자열을 뒤집고 뒤에 ‘B’를 붙이기 2가지 연산을 가지고 문자열1을 문자열2로 만들 수 있는지 여부를 판단하는 문제.

3. 코드 및 추가내용

import sys

S = sys.stdin.readline().rstrip()
T = sys.stdin.readline().rstrip()

while len(T) > len(S):
    if T[-1] == 'A':
        T = T[:-1]

    else:
        T = T[:-1]
        T = T[::-1]

print(int(S == T))

조금 더 생각하면 아주 간단한 문제.

맨 뒤에 어떤 문자가 붙어있는지를 생각하면 금방 풀 수 있다.

맨 뒤가 ‘A’라면 맨 뒤에 ‘A’를 붙이는 연산을 행했다는 의미이고, 맨 뒤가 ‘B’라면 문자열을 뒤집고 ‘B’를 붙인 연산을 행했다는 의미라고 생각하면 된다.

이를 거꾸로 결과 문자열의 맨 뒤가 ‘A’인 경우에 ‘A’만 빼주고 ‘B’라면 ‘B’를 빼주고 뒤집어가는 것을 두 문자열의 길이가 같아질 때까지 반복한 뒤 두 문자열이 같은지 아닌지 확인해주면 된다.

Comments