[백준][Python]12919번(A와 B 2)

·2024년 1월 4일

백준 문제풀이

목록 보기
158/159

백준 12919번


최종 제출 코드

start = list(input())
end = list(input())
  
result = 0

def solution(word):

  global result
  
  if len(word) == len(start):
    for i in range(len(word)):
      if word[i] != start[i]:
        return
    else:
      result = 1
    return

  if word[0] == 'B':
    solution(word[::-1][:-1])
  if word[-1] == 'A':
    solution(word[:-1])

solution(end)
print(result)

◼️ 재귀함수를 활용한 풀이

  • 함수의 인자로 문자열의 복사본을 전달하면서, 조건에 맞게 함수를 호출한다.
    1) 맨 뒤의 문자열이 A이면, 문자열의 마지막 문자를 제외한 값을 인자로 하여 함수 호출
    2) 맨 앞의 문자열이 B이면, 맨 앞의 문자를 제외한 문자열을 뒤집어 인자로 전달
  • 이 두 조건문은 if-else문으로 작성하면 안되고, 각각의 케이스를 모두 검사해야 하기 때문에 별개의 조건문으로 작성해준다.
  • 전달된 문자열의 길이가 start의 길이가 동일해지면, 문자열이 start와 일치하든 일치하지 않든 함수 호출은 종료되어야 한다.
  • 만약 전달된 문자열이 start와 동일하다면, result값을 1로 바꾸어준다.
  • 모든 분기하는 케이스를 검사할 때까지 start와 동일해지는 케이스를 찾지 못하면 0이 출력되고, 그렇지 않으면 1이 출력된다.
profile
백엔드 개발자가 되고 싶어요(22.8.15~)

0개의 댓글