
😎풀이
s
를 순회하며 각 문자를 문자열 혹은 숫자 배열로 분리
- 배열을 순회하며 서로 교차해서 정답 문자열에 추가
- 두 요소의 길이가 같다면 반환
- 두 요소의 길이가 같지 않다면 남은 요소 추가
- 완성된 정답 문자열 반환환
function reformat(s: string): string {
let onlyStr = []
let onlyNum = []
for(const char of s) {
const numParse = Number(char)
const isNum = Number.isInteger(numParse)
if(isNum) onlyNum.push(char)
else onlyStr.push(char)
}
const nLen = onlyNum.length
const sLen = onlyStr.length
if(Math.abs(nLen - sLen) > 1) return ''
const isStrMoreLong = sLen > nLen
let result = ''
const loopLen = Math.min(sLen, nLen)
for(let i = 0; i < loopLen; i++) {
if(isStrMoreLong) result += onlyStr[i] + onlyNum[i]
else result += onlyNum[i] + onlyStr[i]
}
if(nLen === sLen) return result
if(isStrMoreLong) result += onlyStr.at(-1)
else result += onlyNum.at(-1)
return result
};