const digits = ['', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구'] const units = ['', '십', '백', '천'] const higherUnits = ['', '만', '억', '조', '경', '해'] // 숫자를 한글 표기로 (예: 12000 → 일만이천) export function numberToKorean(num: number): string { if (num === 0) return '영' const groups: number[] = [] let numStr = num.toString() while (numStr.length > 0) { groups.unshift(parseInt(numStr.slice(-4))) numStr = numStr.slice(0, -4) } let result = '' const groupLen = groups.length for (let idx = 0; idx < groupLen; idx++) { const group = groups[idx] if (group === 0) continue const groupStr = processGroup(group, idx === 0) result += groupStr + higherUnits[groupLen - idx - 1] } return result } function processGroup(num: number, isFirstGroup = false): string { const numStr = num.toString().padStart(4, '0') let result = '' for (let idx = 0; idx < numStr.length; idx++) { const digit = parseInt(numStr[idx]) const unit = units[3 - idx] if (digit === 0) continue if (digit === 1) { if (unit !== '') { result += isFirstGroup && unit === '천' ? digits[digit] + unit : unit } else { result += '일' } } else { result += digits[digit] + unit } } return result }