매일프로그래밍 [실리콘밸리 알고리즘] - 팰린드롬인지 알아내시오. (18/02/12)


https://mailprogramming.com/

이 곳에서 1주마다 정기적으로 코딩문제를 받고, 풀어보고 있다.

실리콘밸리에서 소프트웨어 엔지니어로 일하고 있는 팀원들로 구성된 팀이라고 한다.


1. 18/02/12


정수(int)가 주어지면 팰린드롬인지 알아내시오. 단, 정수를 문자열로 바꾸면 안됨.

예제}
Input: 12321
Output: True

Input: 12322
Output: False


# -*- coding: utf8 -*-

# 정수(int)가 주어지면 팰린드롬(palindrome)인지 알아내시오.
# 단, 정수를 문자열로 바꾸면 안됨.


# Input

n = int(input(": "))


# Negative numbers aren't palindrome.

if n<0:
    print(False)
    exit()


# Convert 'int' to 'list' and Reverse at the same time

arr = [n%10]
i = 100
j = 10

while int(n/j) != 0:
    arr.append(int(n%i/j))
    i *= 10
    j *= 10


# Convert 'list' to 'int'

n2 = 0
i = 1

while len(arr) >= i:
    n2 += arr[-i] * (10**(i-1))
    i += 1


# Compare input and reversed

if n == n2:
    print(True)

else:
    print(False)

댓글