[프로그래머스 lev2/JS] JadenCase 문자열 만들기

woolee의 기록보관소·2022년 11월 8일
0

알고리즘 문제풀이

목록 보기
81/178

문제 출처

프로그래머스 lev2 - JadenCase 문자열 만들기

문제

나의 풀이

function solution(s) {
  s=s.split(' ');
  let ans = Array.from({length:s.length}, ()=>'');

  for (let i=0; i<s.length; i++) {
    for (let j=0; j<s[i].length; j++) {
      if (j==0) {
        ans[i] += s[i][j].toUpperCase();
      }
      else {
        ans[i] += s[i][j].toLowerCase();
      }
    }
  }
  return ans.join(' ');
}

console.log(solution("3people unFollowed me"));

다른 풀이

문제에서 s는 알파벳과 공백문자(" ")로 이루어져 있으므로 테스트케이스 중 연속된 공백이 있을 수 있다. 이때 단순히 공백을 기준으로 split하게 되면 '빈 문자열'이 요소로 있는 경우가 생기고 이때 해당 요소를 배열 index로 접근할 경우 undefined로 반환하므로 toUpperCase()에서 런타임 에러가 발생한다.

function solution(s) { 
  return s.split(" ").map(word => { 
    if (word === "") return; 
    return word[0].toUpperCase() + word.substring(1).toLowerCase(); 
  }).join(" "); 
} // 앞뒤 공백 예외처리 추가하면 된다.
function solution(s) {
    return s.split(" ").map(v => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}
profile
https://medium.com/@wooleejaan

0개의 댓글