숫자인 num
을 받아 num
이 회문(palindrome) 인지 아닌지를 반환 하는 함수를 만들어라.
회문이면 True
아니면 False
를 반환
(단, 부호 포함하여 검사한다)
회문?
제대로 읽은것과 거꾸로 읽은 것과 같은 문자열
ex)
1234321, 11211, 9521259 ....
def same_reverse(num):
#step 1
reverse_num=list(str(num))
num을 문자열로 만들어 다시 그 요소들을 list에 담는 변수
#step 2
reverse_num.reverse()
#list로 만든 reverse_num을 뒤집는다.
#step 3
result=''.join(reverse_num)
# result에 reverse_num의 원소들을 str로 바꾸어 담는다
return result == str(num)
num=12345
-> reversed_num=['1', '2', '3', '4', '5']
reversed_num = ['5', '4', '3', '2', '1']
result='54321'
return '54321'=='12345'
def same_reverse(num):
str_num=str(num)
for i in range(len(str_num)//2):
if (str_num[i] != str_num[n-i-1])
return False
return True
내가 다른 풀이로 생각한것과 같은 방법으로
잘 풀어 주셨다.
그런데, 나는 len(str_num)
을 모두 검사 하도록 했다. 회문은 대칭적임으로 앞쪽 반쪽만 검사해도 충분하다. 그 중복도 잘 제거해 주셨다.