프로그래머스/lv2

프로그래머스 : JadenCase 문자열 만들기 (lv2) C++

TIN9 2022. 10. 6.
반응형
#include <string>
#include <vector>

using namespace std;

void ConvertCharSmallToBig(char* SmallLetter)
{
    if(*SmallLetter < 'a')
        return;
    
    // 만약에 소문자 대문자 char값을 모른다면 'a' - 'b' 이런식으로 비교해서 넣어도될거같음
    else
        *SmallLetter -= 32;
}

void ConvertCharBigToSmall(char* BigLetter)
{
    if(*BigLetter <= 'Z' && 'A' <= *BigLetter)
    {
        // 만약에 소문자 대문자 char값을 모른다면 'a' - 'b' 이런식으로 비교해서 넣어도될거같음
        *BigLetter += 32;
    }
}
string solution(string s) {
    string answer = "";
    
    size_t Size = s.size();
    int Count = 0;
    
    for(size_t i = 0; i < Size; ++i)
    {
        if(s[i] == ' ')
        {
            ConvertCharSmallToBig(&answer[i - Count]);
            Count = 0;
            answer += ' ';
        }
        else
        {
            answer += s[i];
            ConvertCharBigToSmall(&answer[i]);
            ++Count;
        }
    }
    // 마지막에 for문에서 공백을 못찾기때문에 마지막 값을 카운트를 이용해서 넣어줌
    ConvertCharSmallToBig(&answer[answer.size() - Count]);
    Count = 0;
    
    return answer;
}
반응형

댓글