Number Palindrome

NumberPalindrome

0 에서 $10^n$ 사이의 정수 $10^n-1$ 개 중에서, 그냥 보았을때, 그리고 역순으로 뒤집어서 보았을때 같은 숫자를 카운트 하는 함수를 작성하세요.

테스트 예제

n Return
1 10
  • 0부터 $10^1$, 즉 10까지 숫자중 회문이 성립하는 순자의 갯수를 카운트
  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 이 성립
  • 10을 리턴

조건

  • n은 1부터 1000까지 정수중 하나

  • 뒤집어도 같은 정수란 3, 44, 12321 과 같은 정수들을 뜻합니다.

나의 풀이

1
2
3
4
5
def solution(n):
pal_count = 10
for i in range(2, n+1):
pal_count += 9 * (10 ** ((i - 1) // 2))
return pal_count

다른 풀이

1
2
3
4
def solution(n):
if n == 1:
return 10
return solution(n-1) + 9 * (10 ** ((n-1)//2))

나의 풀이와 거의 유사하지만 재귀함수를 사용한 풀이이다. 시간복잡도도 거의 동일하다.

Share