
😎풀이
- 대칭 수 판별 헬퍼 함수 정의
1-1. 수를 각 자릿수로 분리
1-2. 자릿수가 홀수라면, 대칭 수가 될 수 없음
1-3. 전체 수의 절반의 요소를 합한 결괏값이 나머지 결괏값과 같은지 동등비교 후 결과 반환
low부터 high까지의 수 순회
2-1. 현재 수가 대칭 수 라면, 카운트
- 전체 카운트 반환
function countSymmetricIntegers(low: number, high: number): number {
let count = 0
for(let i = low; i <= high; i++) {
if(isSymmetric(i)) count++
}
return count
};
function isSymmetric(num: number) {
const digits = []
while(num) {
digits.push(num % 10)
num = Math.floor(num / 10)
}
if((digits.length % 2) === 1) return false
const halfSize = digits.length / 2
const total = digits.reduce((acc, cur) => acc + cur, 0)
const half = total / 2
let sum = 0
for(let i = 0; i < halfSize; i++) {
sum += digits[i]
}
return half === sum
}