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

김예지·2021년 10월 18일
1

문제

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


문제 풀이

코드1(런타임 에러)

function solution(s) {
    let answer='';
    s=s.toLowerCase().split(' ');
    for(let x of s){
        if(x[0].charCodeAt()>=97 && x[0].charCodeAt()<=122){
            answer+=x[0].toUpperCase();
        }
        else answer+=x[0];
        for(let i=1; i<x.length; i++){
            answer+=x[i];
        }
        answer+=' ';
    }
    
    return answer.trim();
}

이중 for문을 써서 그런지... 런타임 에러가 났다...!

코드2

function solution(s) {
    return s.toLowerCase().replace(/\b[a-z]/g, letter => letter.toUpperCase()); 
}

정규표현식을 통해 간단하게 풀 수 있었다. 처음엔 replace할 때, 어떻게 replace를 할 문자를 가져올지 몰랐는데 letter => letter.toUpperCase() 처럼 불러올 수 있었다. (참고)

replace는 원래 처음으로 발견된 값만 대체해주지만, 정규식을 활용해서 모든 경우를 다 대체할 수 있다. (참고)


참고

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

1개의 댓글

comment-user-thumbnail
2021년 10월 27일

10/27
replace를 할 문자 가져오는 패턴 익히기

function solution(s) {
    return s.toLowerCase()
    .replace(/\b\w/g, v=>v.toUpperCase())
}
답글 달기