[Algorithm] [초급] Palindrome 숫자 찾기

Ji Ho Choi
코드팩토리
Published in
3 min readMay 24, 2019

안녕하세요 소프트웨어 엔지니어 최지호입니다.

아래 블로그를 가시면 더욱 많은 정보를 접해보실 수 있습니다.

오늘은 앞으로 읽어도 뒤로 읽어도 똑같은 Palindrome Integer를 확인하는 방법에 대해 알아보도록 하겠습니다.

문제

함수에 x 파라미터가 Integer 값일 때 이 값이 Palindrome 인지 여부를 Boolean으로 리턴하는 문제입니다. 예를 들면 아래와 같은 아웃풋이 나오면 되겠습니다.

Input: 121
Output: true
Input: -121
Output: false
Input: 10
Output: false

여기서 주의해아할 점은 -가 붙는 경우 무조건 false입니다. 왜냐하면 [“-”,”1",”2",”1"]은 palindrome이 아니기 때문이죠. 이점만 유의하고 푸시면 어려운 점은 없는 문제입니다.

풀이

커서를 왼쪽 끝과 오른쪽 끝 두 가지로 가져가고 서로 한 칸씩 좁혀가며 커서에 해당되는 두 값이 같은지 않은지 체크를 하시면 됩니다. 이때 숫자의 처음부터 끝까지 모두 보실 필요는 없고 중간까지만 체크를 하시면 됩니다.

const isPalindrome = function(x) {
// 마이너스 값이면 바로 false 리턴
if
(x < 0) {
return false;
}

// Integer를 array화
const
arr = x.toString().split('');
const length = (arr.length) / 2;

for (let i = 0; i < length; i++) {
const startCursor = arr[i];
const endCursor = arr[arr.length - i - 1];

// 두 커서의 값이 매칭이 안되면 바로 return false
if
(startCursor !== endCursor) {
return false;
}
}

// 문제 없을경우 return true
return true
;
};

아래 링크를 참조한 문제입니다.

--

--