본문 바로가기

코딩테스트

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

반응형

문제

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

나의 풀이(오답)

function solution(s) {

    const test = s.toLowerCase().split(" ");

    const test2 = test.map((el)=> el.replace(/^./,el[0].toUpperCase()))

    return test2.join(" ");
}

 

런타임 에러가 났다.
정규식이 연산량이 많다보다..

다른이의 정답

방법1. split("") 이용

 

function solution(s) {
    s = s.toLowerCase()
    var answer = s.split(" ").map(s => {
        let arr = s.split("")
        if(arr[0] != null) arr[0] = arr[0].toUpperCase();
        return arr.join(''); 
    }).join(' '); 
    return answer; 
}

 

방법2. chatAt & substring이용

 

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

 

너무 깔끔하다..

substring()메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.

반응형