거꾸로 숫자
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