[프로그래머스] JadenCase 문자열 만들기
문제 설명
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;
}