본문 바로가기

알고리즘 문제풀이

JadenCase 문자열 만들기

JadenCase 문자열 만들기 (프로그래머스 레벨2)

https://school.programmers.co.kr/learn/courses/30/lessons/12951

 

문제 설명

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다.

단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다.

문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

 

제한 조건

s는 길이 1 이상 200 이하인 문자열입니다.

s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.

숫자는 단어의 첫 문자로만 나옵니다.

숫자로만 이루어진 단어는 없습니다.

공백문자가 연속해서 나올 수 있습니다.

 

코드

function solution(s) {
    s = isNaN(s[0]) ? s.charAt(0).toUpperCase() + s.slice(1) : s;
    let empty = false;

    for (let i = 1; i < s.length; i++) {
        if (s[i] === ' ') empty = true;
        else if (empty) {
            s = `${s.slice(0, i)}${s.charAt(i).toUpperCase()}${s.slice(i + 1)}`;
            empty = false;
        } else {
            s = `${s.slice(0, i)}${s.charAt(i).toLowerCase()}${s.slice(i + 1)}`;
        }
    }
    return s;
}

 

풀이

먼저 0번쨰 인덱스가 숫자인 경우를 해결해야 됩니다

isNaN 내장메서드와 삼항연산자로 해결을 했고 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/isNaN

그 후에는 공백을 체크하는 변수를 선언하고

문자열의 길이만큼 반복문을 돌면서(시작은 1번쨰 인덱스 부터)

조건문으로 공백이 나왔을 경우 체크를 하고

공백이 아닌 다음 문자열이 나왔을 경우 대문자로 바꿔야 됩니다

그 외에는 전부 소문자로 바꾸면 됩니다

대문자, 소문자로 바꿔주는 toUpperCase() , toLowerCase()

문자열을 잘라주는 slice()를 이용하여

문자열을 수정했습니다

'알고리즘 문제풀이' 카테고리의 다른 글

시소 짝궁  (0) 2023.01.25
올바른 괄호  (0) 2023.01.25
최솟값 만들기  (0) 2023.01.25
최댓값과 최솟값  (0) 2022.12.14
가장 가까운 같은 글자  (0) 2022.12.14