August 7th 2018
회문(palindrome)이란 앞으로 읽으나 뒤집어 읽으나 똑같은 문자열을 말합니다.
이번 포스팅에서는 세 자리 숫자의 곱으로 이루어진 수 중, 가장 큰 회문을 이루는 숫자를 찾는 방법에 대해 학습해 보고자 합니다.
저는 아래와 같은 방법으로 상기 문제를 해결해 보고자 합니다. - 우선 주어진 숫자가 회문인지 아닌지 확인하는 function을 별도로 만들고자 합니다. - 세자리 숫자로 이루어진 두 수를 곱한 후, 그 수가 회문이면 별도의 배열에 요소로 추가를 합니다. - 이후 이 배열에서 가장 큰 수를 찾습니다.
function isPalindrome(pal) {
var reverseNum = parseInt(
pal
.toString()
.split('')
.reverse()
.join('')
);
return pal === reverseNum;
}
function largestPalindrome() {
var num1,
num2,
product,
palindrome = [];
for (num1 = 100; num1 <= 999; num1++) {
for (num2 = 100; num2 <= 999; num2++) {
product = num1 * num2;
if (isPalindrome(product)) {
palindrome.push(product);
}
}
}
return Math.max(...palindrome);
}
largestPalindrome(); // => 906609
저는 학습한 내용을 포스팅하며 재정리하는 입장이기 때문에, 지나가며 이 글을 보고 이상한 점이나 혹은 다른 조언해 주실 사항 코멘트로 달아주시면 감사하겠습니다. :)