반응형

안녕하세요, 츄르 사려고 코딩하는 집사!      코집사입니다.

1. 문제

주어진 숫자인 12345가 있을 때, 뒤집으면 54321이 된다. 이 12345와 54321을 더하면 66666이 되는데, 이 66666은 앞으로 읽으나 뒤로 읽으나 같은 숫자가 되는 것이다. 이렇게 앞으로 읽으나 뒤로 읽으나 같은 것을 회문(Palindrome)이라고 한다. 이 회문을 확인할 수 있는 프로그램을 만들어라.

2. 입력

첫번째 줄의 입력은 테스트 케이스의 개수 T이며, 두 번쨰 줄부터는 T의 개수만큼 주어진 수 N이다. 

3. 제약 사항


N은 0<= N <= 10,000,000

 

4. 테스트케이스 입/출력

입력
3
121
120
46

출력
yes
yes
yes

5. 소스코드

#테스트 케이스 입력
T = int(input())

#테스트 케이스만큼 반복
for i in range(T) :
    N = int(input()) # 주어진 정수 입력
    N_Reverse = int(str(N)[::-1]) # 정수 reverse 
    value = 0 
    value = N + N_Reverse # 원래의 정수 N과 정수 reverse의 합
    value = str(value) # 회문을 확인하기 위해 str형으로 변환
    mid = len(value) // 2 # 결국 value의 크기를 2로 나눴을 때의 몫이 회문 범위
    k = len(value) - 1 // 회문 확인을 위해 맨 뒤 요소
    
    # 회문 비교
    for j in range(mid+1) :
        if value[j] == value[k] :
            k -= 1
        
        else : 
            print('No')
            break
        
    
    if j == mid :
        print('yes')
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기