본문 바로가기
코딩테스트/프로그래머스

프로그래머스] C++ 연습문제 - JadenCase 문자열 만들기(level 2)

by Hwan2 2020. 6. 12.
반응형

해당 문제는 프로그래머스 코딩테스트 연습에 있는 문제입니다.

아래 링크를 통해 풀 수 있습니다.


https://programmers.co.kr/learn/courses/30/lessons/12951



1.문제





2. 조건

1. 주어지는 문장에는 숫자, 소문자, 대문자, 스페이스가 들어있습니다.
2. 문장의 앞단어가 알파벳일 경우 무조건 대문자로 바뀌어야 합니다.
3. 스페이스바를 기준으로 앞 단어는 대문자로 되어야하고 나머지는 소문자여야 합니다.


3.  풀이

저는 처음 시작던어에 toupper()함수를 통해 대문자로 만들어주고 진행했습니다.
그리고 스페이스바를 만났을 때 다음 단어를 대문자로 바꿔줬습니다.
여기서 주의해야할 점은 스페이스바가 연속으로 나올 경우입니다.
따라서 저는 flag라는 bool변수를 통해 연달아 나오는 스페이스바를 체크했습니다.



4. 코드

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    bool flag = false;
    s[0] = toupper(s[0]);
    for(size_t i = 1; i < s.size(); i++){
        if(flag && s[i] != ' '){ s[i] = toupper(s[i]); flag = falsecontinue; }
        if(s[i] >= '0' && s[i] <= '9'continue;
        else if(s[i] == ' ') flag = true;
        else s[i] = tolower(s[i]);
    }
    return s;
}


반응형

댓글


스킨편집 -> html 편집에서