백준 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이 출력된다.