https://www.acmicpc.net/problem/25501
import sys
read = sys.stdin.readline
n = int(read())
def recursion(s, l, r):
global cnt
cnt += 1
if l >= r: return 1
elif s[l] != s[r]: return 0
else: return recursion(s, l+1, r-1)
def isPalindrome(s):
return recursion(s, 0, len(s)-1)
for _ in range(n):
string = read().rstrip()
cnt = 0
print(isPalindrome(string), cnt)
처음엔 문자열 받고 append로 리스트에 추가해주려고 했는데 그럴 필요가 없었다.
rstrip()함수를 이용해 개행을 없애 문자열을 입력 받고 cnt를 0으로 초기화 해준다.
이후 힌트에 나와있는 코드의 recursion에 cnt를 한번씩 더해준다.
이때 사용된 cnt변수는 global을 사용함으로써 지역변수가 아닌 전역변수를 사용한 것이다.
'Algorithm > Problems' 카테고리의 다른 글
[백준/파이썬] 2231번 분해합 (0) | 2022.11.10 |
---|---|
[백준/파이썬] 2798번 블랙잭 (0) | 2022.11.10 |
[백준/파이썬] 18870번 좌표 압축 (0) | 2022.11.09 |
[백준/파이썬] 10814번 나이순 정렬 (0) | 2022.11.09 |
[백준/파이썬] 1181번 단어 정렬 (0) | 2022.11.09 |