Programmers

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

winter17 2023. 6. 29. 10:34

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 과정

function solution(s) {
    var answer = '';
    let capitalizeNext = true
    for (let i = 0; i < s.length; i++){
        const char = s[i]
        if (char === ' '){
            answer += ' '
            capitalizeNext = true
        }else if (capitalizeNext){
            answer += char.toUpperCase()
            capitalizeNext = false
        }else{
            answer += char.toLowerCase()
        }
    }
    return answer;
}

반복문을 시작하기 전에 대문자로 바꿀지 소문자로 바꿀지 결정할 변수를 하나 만든다. capitalizeNext = true

첫 번째 조건문에서 공백이 나올 경우 빈 문자열 answer에 공백을 추가하고 다음에 올 문자를 대문자로 만들기 위해서 capitalizeNext = true설정해 준다.

두 번째 조건문에서 true라면 (문자열의 첫 번째) 대문자로 만들어주고 다음에 올 문자열을 소문자로 만들기 위해 false로 설정해 준다.

마지막 조건문에서는 나머지 문자들을 소문자로 만들어주면 된다.


리뷰

공백이 연속해서 나올 경우를 어떻게 고려해야 할지 몰라서 결국 정답 코드를 보고 말았는데 내가 너무 어렵게 생각한 것 같다.

주어진 문자열을 배열로 바꿀 것이 아니라 문자열 자체로 처리하면 되는 거였다.

갑자기 알고리즘 문제 난이도가 올라가서 이틀째 풀다가 도중에 그만둔 문제가 몇 개나 되는지 모르겠다.

코드를 보면 별로 어려운 것도 아닌데 아직 멀었나 보다