백준 문제풀이 12904 A와 B

Kim. K.S·2022년 3월 16일
0

boj 12904 : A와 B

문제 주소: https://www.acmicpc.net/problem/12904

"준비됐어 A? 당연하지 B"

난이도: tier 12904

1.문제설명

  • A와 B로만 이루어진 문자열이 주어진다.
  • 첫번째 문자열을 두번째 문자열로 만들려한다.
  • 첫번째 문자열에 다음과같은 작업을 할수있다.
    • 문자열 뒤에 A를 붙힌다
    • 문자열을 뒤집고 그 뒤에 B를 붙힌다.
  • 첫번째 문자열이 두번째 문자열이 될 수 있는가?

2.문제해결 아이디어.

  • 처음에는 첫번째 문자열이 어떻게하면 두번째 문자열이 될수 있을까? 라고 생각했다.
  • 생각을 바꿔 두번째 문자열을 어떻게 첫번째 문자열로 바꿀수 있을까?
    • 두가지 과정을 반대로 적용시켜서 첫번째 문자열과 길이가 같아졌을 때 두 문자열이 같은지 비교하자!

3.문제접근법

while len(target) > len(input_str): #두번째 문자열의 길이가 첫번째 문자열의 길이보다 길때까지 반복
    if target[-1] == 'A': #마지막 문자가 A면
        target.pop() #기존의 문자열에 A를 추가한 것이니 이를 반대로 pop시켜준다
    else: #B면
        target.pop() #B를 추가한거니깐 일단 pop시키고
        target.reverse() #문자열을 뒤집고 B를 추가했으니 원래대로 뒤집어준다.

4.특별히 참고할 사항

  • 유연한 사고....

5.코드구현

input_str = list(input())
target = list(input())
while len(target) > len(input_str):
    if target[-1] == 'A':
        target.pop()
    else:
        target.pop()
        target.reverse()
if target == input_str:
    print(1)
else:
    print(0)
profile
시원한 맥주, 음악, 야구, 사진찍기를 좋아합니다.

0개의 댓글