🍞 Problem Solving/Programmers

[프로그래머스][Level2] JadenCase 문자열 만들기 c++

박빵이 2022. 10. 20. 20:26

풀이 과정

다른 문제와 차이점은 str가 공백일 때도 벡터에 넣어준다는 점이다.  
그 이유는 공백문자가 연속해서 나올 수도 있기 때문이다.

일단 처음에 다 소문자로 바꿔준 뒤, 벡터에 넣은 값 인덱스 0값이 소문자라면 대문자로 바꿔준다. 그리고 마지막 인덱스를 제외하고 뒷부분에 공백을 붙여준다.

 

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    string answer = "";
    for(int i = 0; i < s.size(); i++){
        if('A' <= s[i] && s[i] <= 'Z') s[i] += 32;
    }
    vector<string> v;
    string str = "";
    for(int i = 0; i < s.size(); i++){
        if(s[i] == ' '){
            v.push_back(str);
            str = "";
        }
        else str += s[i];
    }
    v.push_back(str);

    for(int i = 0; i < v.size(); i++){
        if('a' <= v[i][0] && v[i][0] <= 'z') v[i][0] -= 32;
        answer += v[i];
        if(i != v.size() - 1) answer += ' ';
    }
    return answer;
}