ALGORITHM/프로그래머스

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

JC0 2023. 9. 12. 20:02

JadenCase 문자열 만들기 문제를 풀어보았다.

벡터변수와 string 변수를 만들어서 공백으로 구분하여 벡터에 추가하였다.

현재 문자 위치가 공백이 아니고 현재 문자 -1에 해당하는 위치가 공백이라면 toupper메소드를 이용해서 대문자로 바꿔주면 해결할 수 있는 문제이다.

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>


using namespace std;

string solution(string s) {
    string answer = "";
    vector<string> v;
    string temp = "";
    for(int i = 0; i < s.length(); i++)
    {
        if(i == 0)
        {
            temp += toupper(s[i]);
        }
        else if(s[i] != ' ' && s[i-1] != ' ')
        {
            temp += tolower(s[i]);
        }
        else if(s[i] != ' ' && s[i-1] == ' ')
        {
            temp += toupper(s[i]);
        }
        else if(s[i] == ' ')
        {
            v.push_back(temp);
            v.push_back(" ");
            temp.clear();
        }
        
        if(i == s.length() - 1)
        {
            v.push_back(temp);
        }
        
        cout << "s[" << i << "] = " << s[i];
        cout << "     s[i-1] = " << s[i-1] << endl;
    }
    
    for(string s : v)
    {
        cout << s;
        answer += s;
    }
    
    
    return answer;
}

1.첫번째 문자가 숫자여서 무시한다.

2.현재문자가 공백이 아니고 이전 문자가 공백이기 때문에 대문자로 변환한다.