Programmers - JadenCase 문자열 만들기

Myung Jin Kim·2023년 11월 12일
0

문제

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

  • s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
  • 숫자는 단어의 첫 문자로만 나옵니다.
  • 숫자로만 이루어진 단어는 없습니다.
  • 공백문자가 연속해서 나올 수 있습니다.

풀이

function solution(s) {
    const sArr = s.split(' ');
    const sResult = [];
    sArr.forEach((eachSarr) => {
        if(eachSarr === '') {
            sResult.push('');
            return;
        }
        
        const firstCharacter = eachSarr[0];
        
        if(Number.isNaN(Number(firstCharacter))) {
            const remainCharacters = eachSarr.substring(1);
            sResult.push(`${firstCharacter.toUpperCase()}${remainCharacters.toLowerCase()}`);  
        } else {
            sResult.push(eachSarr.toLowerCase());
        }
    });
    return sResult.join(' ');
}

과정

문제는 자체는 간단하지만 조건이 중요한 문제다. '공백문자가 연속해서 나올 수 있습니다.' 해당 조건에 대한 예외처리를 하지 않으면 String.prototype.substring Method 를 실행하는 과정에서 런타임 에러가 발생할 수 밖에 없다.

profile
개발을 취미로 하고 싶은 개발자를 목표로 살고 있습니다

0개의 댓글