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

비슈·2023년 6월 2일
0

코딩테스트준비[JS]

목록 보기
1/11

https://school.programmers.co.kr/learn/courses/30/lessons/12951![](https://velog.velcdn.com/images/bishoe01/post/a0a4b613-3ded-455e-bcc1-a1fad2d8cabc/image.png)

문제 설명

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

제한 조건

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

  1. 문제에서 필요한 부분을 주석으로 정의해보았다.
function solution(s) {
    var answer = '';
    //1. split해주기   -> 단어별로 나누기 위함
    //2. lowercase   -> 전부 소문자로 바꿔주고
    //3. 맨앞이숫자? 패스  -> 맨앞이 숫자면 그냥 넘어가고
    //4. 맨앞이 영어 ? 대문자  -> 맨앞이 알파벳이면 대문자로바꿔주겠다./
    })
}
1. split해주기   -> 단어별로 나누기 위함
2. lowercase   -> 전부 소문자로 바꿔주고
3. 맨앞이숫자? 패스  -> 맨앞이 숫자면 그냥 넘어가고
4. 맨앞이 영어 ? 대문자  -> 맨앞이 알파벳이면 대문자로바꿔주겠다.

다음과 같은 로직을 생각하고 일단 구현하다보니 ..

생각해보니 숫자든 알파벳이던 그냥 맨앞문자열을 대문자로 만들어주면 결과는 동일했다.

function solution(s) {
    var answer = '';

    let a = s.split(' ');    //split해주기
    
    a.map((element,index) => {
        a[index] = element.charAt(0).toUpperCase() + element.slice(1).toLowerCase();     
        
        //첫글자만 upper,나머지는 lowercase
    })
    
    return a.join(' ');
}

다음과 같이 구현해주었다.

charAt(0).toUpperCase()하면위의 사진과같이 맨앞문자열빼고 나머지는 사라지므로 element.slice(1)을 해주어 나머지 문자열에 대한 로직처리를 해주었다.

profile
개발자 준비하기

0개의 댓글