[LeetCode] 1417. Reformat The String

Chobby·2025년 8월 22일
1

LeetCode

목록 보기
520/582

😎풀이

  1. s를 순회하며 각 문자를 문자열 혹은 숫자 배열로 분리
  2. 배열을 순회하며 서로 교차해서 정답 문자열에 추가
  3. 두 요소의 길이가 같다면 반환
  4. 두 요소의 길이가 같지 않다면 남은 요소 추가
  5. 완성된 정답 문자열 반환환
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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글