본문 바로가기
알고리즘 공부

프로그래머스 2단계 - JadenCase 문자열 만들기

by 코딩 냠냠 2022. 12. 7.
728x90
반응형

JadenCase 문자열 만들기


문제 설명

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"

🦖내가 한 풀이

처음에는 소문자로 만들어 주고, 공백단위 단어를 나누어 주었습니다.
map()을 활용하여서 새로운 배열을 만들어 주었습니다. 여기서 replace와 charAt(0), 정규식 표현으로 앞글자를 찾아주었습니다. join()은 공백을 포함해야 합니다.

let s = "3people unFollowed me";
function solution(s) {
    var answer = '';
    //소문자 만들기 & 공백으로 나눠주기
    s = s.toLowerCase().split(' ');
    //공백여부도 포함, charAt으로 앞글자 찾음
    answer = s.map(e => e.replace(/^./,e.charAt(0).toUpperCase())).join(' ')
    return answer;
}

🦖다른 풀이

정규식 표현대신에 substring()과 charAt()을 함께 사용해 찾을 수도 있네요.replace()사용하지 않고, 바로 charAt(0)과 substring(1)으로 첫번째와 두번째를 따로 찾을수 있군요.

function solution(s) {
    return s.split(" ").map(v => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}

댓글


자바스크립트

Javascript

자세히 보기
html
css
광고 준비중입니다.
<