문제를 요약하자면, 첫 문자와 공백 뒤의 문자열이 모두 대문자, 이외의 문자는 소문자로 변환하여 출력하는 문제이다.
나는 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;
}