코딩 테스트 풀이 🛠

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

엄성준 2023. 2. 28. 21:58

문제 설명

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

 

제한 조건

  • s는 길이 1 이상 200 이하인 문자열입니다.
  • s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
    • 숫자는 단어의 첫 문자로만 나옵니다.
    • 숫자로만 이루어진 단어는 없습니다.
    • 공백문자가 연속해서 나올 수 있습니다.

 

입출력 예

 

s return
"3people unFollowed me" "3people Unfollowed Me"
"for the last week" "For The Last Week"

 

나의 풀이

 

function solution(s) {
    var answer = '';
    const jadenCase = s.split(' ').map((str)=>{ // s.split(' ')을 통해서 ' '단위로 문자열을 쪼갰습니다. 그 후 map 함수를 통해서 쪼개진 문자열들을 str로 받았습니다.
        str = str.toLowerCase() // 문자열 str을 소문자로 변형
        if(isNaN(str.charAt(0))){ // str문자열의 첫 글자가 문자라면 아래 조건문 실행
            let newStr = '' // newStr 빈 문자열 생성
            newStr += str.charAt(0).toUpperCase() // newStr에 str의 첫 번째 문자를 대문자로 변형해서 붙였고
            newStr += str.slice(1) // str의 첫 문자를 제외한 뒤의 문자들을 newStr에 붙여주었습니다.
            // console.log(newStr)
            return newStr // newStr을 jadenCase에 return해주었습니다.
        }
        return str // str의 첫 문자가 문자가 아닌 것들은 바로 return해주었습니다.
    })
    
    answer = jadenCase.join(' ') // jadenCase의 배열을 ' '단위로 join하여서 answer에 할당해주었습니다.
    
    return answer; // 그 후 answer을 return 하였습니다.
}