반갑습니다!

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

알고리즘 문제 풀이

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

김덜덜이 2020. 4. 3. 22:15
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

풀이

flag값을 생성하여 첫글자인지 체크해주면서 문자열을 변환해주면 된다.

코드

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    // 첫 글자 확인 flag 변수
    bool first = true;
    for (int i = 0; i < s.length(); i++) {
        char c = s[i];
        // 첫 글자이면서 소문자인 경우
        if (first && 'a' <= c && c <= 'z') {
            s[i] = c - ('a' - 'A');
            first = false;
        }
        // 첫글자가 아닌데 대문자인 경우
        else if (!first && 'A' <= c && c <= 'Z') {
            s[i] = c + ('a' - 'A');
        }
        // 띄어쓰기가 나오면 flag 값 변경
        else if (c == ' ') first = true;
        숫자가 첫 글자로 나온 경우 flag 값 변경
        else first = false;
    }
    return s;
}