코딩테스트
[프로그래머스] 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()에서 런타임 오류가 발생하는 것이다.