코딩테스트 공부
[프로그래머스] JadenCase 문자열 만들기 - 자바스크립트
codevil
2022. 5. 10. 19:33
https://programmers.co.kr/learn/courses/30/lessons/12951
코딩테스트 연습 - JadenCase 문자열 만들기
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고
programmers.co.kr
function solution(s) {
s=s.toLowerCase();
s = s.split(' ')
for(let i =0;i<s.length;i++){
let up = s[i][0].toUpperCase();
s[i] = [up, ...s[i].slice(1)].join('');
}
s= s.join(' ')
return s
}
1회차 풀이 때는, 테스트 케이스는 통과했지만, 최종 케이스에서 절반정도 틀렸다. 생각을 해봤는데, 이 문제를 굳이 나누고 처음 글자를 uppercase하는 것 보다는, " " 빈 string이 나온 후에는 toUpperCase를 하는 것이 더 효율적이라는 생각이 들어서.
1. 첫글자를 let answer에 대입 (i -1을 사용할꺼기 때문에)
2. answer에 대입할 chr은 모두 소문자로
3. 단, chr의 앞에 들어갈 글자가 " "라면, to upper case로 바꿀것
로 심플하게 풀었다, 여기서 콘솔로 한가지 확인한 케이스는 단 하나였다, 만일 숫자를 toUppercase시키면 어떤 경우가 나오는가이다. 숫자에는 대문자가 없어서 그런가 그냥 문제 없이 출력됬다.
아래는 풀이이다.
function solution(s) {
let answer = s[0].toUpperCase()
for(let i =1;i<s.length;i++){
// s[i]
let chr = s[i].toLowerCase()
if(s[i-1]===" "||0){
chr = s[i].toUpperCase()
}
answer = answer + chr
}
return answer
}