프로그래머스 JadenCase 문자열 만들기 - C++

JangGwon·2022년 12월 12일
0

문제 설명

내 풀이

문제를 요약하자면, 첫 문자와 공백 뒤의 문자열이 모두 대문자, 이외의 문자는 소문자로 변환하여 출력하는 문제이다.
나는 findspace변수를 이용해 공백들을 구분하였는데, 문자열을 순회하는동안 공백을 발견할 때마다 findspace가 = true로 값을 설정해주는 방식을 사용하였다. 또 한 대문자/소문자 변환은 문자열을 순회하는동안 영어 글자를 만났을 때findspace가 = true라면 단어의 첫 글자임으로 대문자로 변환, 이후 순회에서 공백이 나오기전까지 findspace = false를 주는 방식등으로 JadenCase형식의 문자열로 변환하였다

코드

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    bool findspace = true;
    string answer = "";
    
    for (int i =0; i < s.size() ;i++)
    {
        if(findspace == false)
        {
            if (s[i] == ' ')
            {
                findspace = true;
                answer += " ";
            }
            else if (s[i] >= 'A' && s[i] <= 'Z')
                answer += (s[i] + 'a' - 'A');
            else
                answer += s[i];
        }
        else
        {
            if (s[i] >= 'a' && s[i] <= 'z')
            {
                answer += (s[i] -'a' + 'A');
                findspace = false;
            }
            else if (s[i] == ' ')
            {
                answer += " ";
            }
            else
            {
                answer += s[i];
                findspace = false;
            }
                
        }
    }

    return answer;
}

0개의 댓글