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

less than 1 minute read

문제 설명

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

제한사항

  • s는 길이 1 이상인 문자열입니다.
  • s는 알파벳과 공백문자(“ “)로 이루어져 있습니다.
  • 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 )

풀이

15분..?
문제풀이 시간을 적어놓는 것을 깜빡했다. 처음에 소문자와 대문자의 아스키코드가 이어져있는 줄 알고 알파벳 개수인 26을 더하고 빼주었는데, 이상한 값이 나오는 것을 확인하고는 다시 바꿔주었다.

코드

// 03:34 ~ 
#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    bool flag = true;
    for(int i =0; i < s.length(); ++i){
        if(s[i] == ' '){
            flag = true;
            continue;
        }
        
        if(flag && s[i] >= 'a' && s[i] <= 'z'){
            s[i] = s[i] - 'a' + 'A';
        }
        else if(!flag && s[i] >= 'A' && s[i] <= 'Z')
            s[i] = s[i] - 'A' + 'a';
        
        flag = false;
    }
    return s;
}