거꾸로 숫자
180도 회전해도 그대로 유지되는 숫자를 거꾸로 된 숫자라고 합니다.
예를 들어, 9116, 69.
문제
두 숫자의 범위 배열을 취하는 JavaScript 함수를 작성해야 합니다. 우리 함수는 지정된 범위에 속하는 모든 거꾸로 된 숫자의 개수를 반환해야 합니다.
예시
다음은 코드입니다 -
const range = [5, 125];
const flipNum = (number) => {
const upsideDownDigits = [0, 1, -99, -99, -99, -99, 9, -99, 8, 6];
let reverseNumArr = String(number)
.split('')
.map(val => Number(val))
.reverse();
let flipDigitsNumArr = reverseNumArr.map(val => upsideDownDigits[val]);
if (flipDigitsNumArr.includes(-99)) {
return false;
}
let flipDigitsNum = Number(
flipDigitsNumArr.reduce((accum, curr) => accum + String(curr))
);
return flipDigitsNum === number;
};
const countUpsideDown = ([lowNum, highNum]) => {
let uDNums = 0;
for (let counter = lowNum; counter <= highNum; counter++) {
uDNums += flipNum(counter) === true;
}
return uDNums;
};
console.log(countUpsideDown(range)); 출력
7