3은로그

[프로그래머스] Lv2. JadenCase 문자열 만들기 본문

코딩테스트

[프로그래머스] Lv2. JadenCase 문자열 만들기

3은 2023. 11. 26. 03:35
728x90

 

https://school.programmers.co.kr/learn/courses/30/lessons/12951

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제

 

 

 

 

코드

 

function solution(s) {
    s = s.split(" ");
    s = s.map(v => v.slice(0,1).toUpperCase() + v.slice(1).toLowerCase()).join(" ");
    return s;
}

 

 

1. 문자열을 공백으로 나눠 배열에 저장한다.

2. 배열을 순회하면서 제일 앞 문자는 대문자로 변경하고 나머지 문자는 소문자로 변경한다.

3. 배열 요소들을 문자열로 변환한다. 

 

 

회고

 

앞 문자를 대문자로 변경하고자 할 때 v[0].toUpperCase()로 접근하는 방법을 사용하면 런타임 오류가 발생한다.

그 이유는 문제를 보면 "공백문자가 연속해서 나올 수 있습니다."라는 제한 조건이 있는데 이 때문이다.

공백을 기준으로 split하면 빈 문자열이 요소로 있는 배열이 생길 수 있게 되는데, 해당 요소를 인덱스로 접근할 경우 undefined를 반환하기 때문에 toUpperCase()에서 런타임 오류가 발생하는 것이다.