백준 25501번
최종 제출 코드
import sys
input = sys.stdin.readline
count = [0]
def count_num():
count[0] += 1
def recursion(s, l, r):
count_num()
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)
number = int(input())
for i in range(number):
print(isPalindrome(input().rstrip('\n')), count[0])
count[0]=0
- 입력값을
input()으로 받으면 \n까지 문자열에 포함되어 팰린드롬 단어여도 0을 출력한다
=> input().rstrip('\n')으로 문자열에서 마지막 줄바꿈 문자를 제거해준다
recursion() 함수를 호출할 때마다 count_num() 함수를 호출해 재귀함수 호출 횟수 검사
count 변수는 코드 어디에서나 접근 및 수정이 가능하도록 배열로 선언
- 결과값을 출력한 이후에는 다시
0으로 초기화해준다
✔ 전역변수
- 전역변수는 지역에서 참조는 가능하지만 변경은 불가능
- 변경 가능하게 만들어주려면 지역에서
global 변수명으로 선언한 후 이용하면 된다
전역변수를 이용한 코드
import sys
input = sys.stdin.readline
count = 0
def count_num():
global count
count += 1
def recursion(s, l, r):
count_num()
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)
number = int(input())
for i in range(number):
print(isPalindrome(input().rstrip('\n')), count)
count=0
전역변수 사용 방법 참고