본문 바로가기
개발/알고리즘

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

by ISA(류) 2021. 8. 31.

# 문제 원문

 

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

  • s는 길이 1 이상인 문자열입니다.
  • s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
  • 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )

입출력 예

s / return

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

 

# 문제 풀이

문제 자체는 그냥 주어진 문자열 s의 각 단어를 대문자로 나머지를 소문자로 만드는게 다이다. 문자열을 배열로 만들 필요없고 단어들로 쪼갤 필요도 없지만 편의를 위해서 그렇게 했다. 만약 효율성이 문제가 된다면 문자열을 쪼개지 않고 처리 하는 방향으로 문제를 풀어야 할 것으로 보인다.

 

# 솔루션 플로우

1. 입력 받은 문자열 s를 공백을 기준으로 쪼개서 단어 리스트를 얻는다.

2. 얻어진 단어의 가장 앞문자를 대문자로 나머지를 소문자로 변환한다.

3. 그렇게 얻어진 단어들을 다시 공백을 기준으로 합쳐서 result를 구한다.

4. 구해진 result를 반환한다.

1. FP

function solution(s) {
    return s.split(' ').map((word) =>
        Array.from(word)
            .map((char, idx) => idx === 0 ? char.toUpperCase() : char.toLowerCase()).join(''))
        .join(' ');
}
반응형