9. Palindrome Number

2020. 1. 6. 13:44· Algorithm/LeetCode

https://leetcode.com/problems/palindrome-number/

 

Palindrome Number - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

난이도: Easy

 

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.


Follow up:
Coud you solve it without converting the integer to a string?

 

숫자를 문자열로 바꾸지 말고 문제를 해결하라고 한다.

palindrome 특성상 음수나 끝에 0이 오는 수는 불가능하다.

따라서 0 또는 양수이면서 일의 자리가 0이 아닌 수를 찾아야 한다.

 

나는 처음에 자릿수를 구해야 할 것 같아서 라이브러리를 사용하거나 log 계산을 적용하려고 했는데,

재귀적으로 구현한다면 꼭 자릿수를 구할 필요는 없었다.

 

숫자에서 일의 자리 숫자만 구하는 방법은 modulo 연산을 사용하면 된다. (숫자) % 10

일의 자리 숫자를 추출하고 남은 숫자만 남기는 방법은 나누기를 사용하면 된다. (숫자) / 10

이 과정을 반복하면서 일의 자리부터 거꾸로 뽑아내어 계속 쌓아가며 두 숫자의 크기를 비교한다.

뽑아낸 숫자가 잘린 숫자와 같아졌다면 palindrome이다.

뽑아낸 숫자가 더 커졌다면 뽑아낸 숫자의 맨 뒷자리를 제외(/10)하고 다시 비교하여, 같다면 palindrome이다.

 

class Solution {
    public boolean isPalindrome(int x) {
        int reversedX = 0;
        int clippedX = x;
        
        if (x % 10 == 0 && x != 0) {
            return false;
        }
        
        while (clippedX >= 0) {
            int bottom = clippedX % 10;
            clippedX /= 10;
            reversedX = 10 * reversedX + bottom;
            
            if (reversedX >= clippedX) {
                if (reversedX == clippedX || reversedX / 10 == clippedX) {
                    return true;
                } else {
                    break;
                }
            }
        }
        return false;
    }
}

'Algorithm > LeetCode' 카테고리의 다른 글

35. Search Insert Position  (0) 2020.01.29
21. Merge Two Sorted Lists  (0) 2020.01.13
20. Valid Parentheses  (0) 2020.01.08
14. Longest Common Prefix  (0) 2020.01.07
1. Two Sum  (0) 2020.01.02
'Algorithm/LeetCode' 카테고리의 다른 글
  • 21. Merge Two Sorted Lists
  • 20. Valid Parentheses
  • 14. Longest Common Prefix
  • 1. Two Sum
lartist
lartist
lartist
like an artist
lartist
전체
오늘
어제
  • 분류 전체보기 (36)
    • Infra (18)
      • [프로젝트] 사내 쿠버네티스 클러스터 구축해보기 (2)
      • [강의] 한 번에 끝내는 AWS 기반 아키텍처 설.. (1)
      • [강의] CKA with Practice Test.. (7)
      • [도서] Cloud Native DevOps wi.. (3)
      • [도서] 도커, 쿠버네티스, 테라폼으로 구현하는 .. (0)
      • [도서] 그림으로 이해하는 네트워크 용어 (5)
    • Algorithm (10)
      • 프로그래머스 (1)
      • LeetCode (9)
    • AI (6)
      • [도서] Scikit-learn으로 머신 러닝 마.. (1)
      • [도서] 밑바닥부터 시작하는 딥러닝 (1)
      • [도서] 인공지능, 보안을 배우다 (2)
    • Security (1)
      • [도서] 인공지능, 보안을 배우다 (1)
    • OS (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 관리

공지사항

인기 글

태그

  • Express
  • Kubernetes
  • JavaScript
  • Java
  • nodejs
  • Modeling
  • LinkedList
  • stack
  • programmers
  • Algorithm
  • leetcode
  • K8S
  • Ai
  • DevOps
  • hash

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
lartist
9. Palindrome Number
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.