JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
∙ s는 길이 1 이상인 문자열입니다.
∙ s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
∙ 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )

function solution(s){
let str = s.split('');
let answer;
function firstSpace(arr){
for( let i = 0; i < arr.length; i++){
if(arr[i] === ' '){
return i;
}
}
}
if(str[0] === str[0].toLowerCase()){
str[0] = str[0].toUpperCase();
}
let space = firstSpace(str);
let i = space;
let j = 1;
while(j < i){
if( str [j - 1] !== ' ' && str[j] === str[j].toUpperCase()){
str[j] = str[j].toLowerCase();
}
j++;
}
while(i + 1 < str.length){
if(str[i] === ' '){
str[i + 1] = str[i + 1].toUpperCase();
}
if(str[i - 1] !== ' ' && str[i] === str[i].toUpperCase() ){
str[i] = str[i].toLowerCase();
}
i++;
}
answer = str.join('');
return answer;
}
정확성 부족.
function solution(s) {
s = s.toLowerCase();
let answer = s.split(" ").map(s => {
let arr = s.split("");
if(arr[0] != null) {
arr[0] = arr[0].toUpperCase();
}
return arr.join('');
}).join(' ');
return answer;
}
우선 모든 문자열 소문자 변환 ->
split(' ')을 통해 공백을 기준으로 문자열 분리해서 배열에 넣기->
분리된 문자열을 spilt('')을 통해 문자 단위로 또 쪼갬 ->
문자 단위로 만든 배열의 첫 번째 원소(arr[0])을 대문자로 변환 ->
split의 역프로세스로 join을 이용해 처음 문자열 형태로 회귀
가끔은 조금 단순히 생각해도 될 것.
+) python version
def solution(s):
answer = ''
# s = s.lower() 일괄적으로 모두 소문자 통일, 없어도 무관
L = s.split(" ") # 단어를 공백 간격 단위로 잘라서 배열 생성
for i in L:
i = i.capitalize() # 단어 첫 글자만 Big, 나머지 글자 Small, 문자열만 되고 배열은 반복문 없으면 사용불가
answer += i + " " # 본래 공백 간격 맞추기
return answer[:-1]
참고) https://jo-c.tistory.com/40?category=856735
https://ian90.tistory.com/46
https://velog.io/@terry960302/알고리즘-풀이-프로그래머스-LV2-JadenCase-문자열-만들기-e8jwm1dqw0