코딩테스트/프로그래머스
프로그래머스] C++ 연습문제 - JadenCase 문자열 만들기(level 2)
Hwan2
2020. 6. 12. 23:03
반응형
해당 문제는 프로그래머스 코딩테스트 연습에 있는 문제입니다.
아래 링크를 통해 풀 수 있습니다.
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 = false; continue; }
if(s[i] >= '0' && s[i] <= '9') continue;
else if(s[i] == ' ') flag = true;
else s[i] = tolower(s[i]);
}
return s;
}
반응형