https://school.programmers.co.kr/learn/courses/30/lessons/12951#
문자열을 처음부터 끝까지 읽으며 공백을 기준으로 자른다.
이때 공백이 연속으로 나올 수 있으므로 temp를 사용해 비어있다면 answer에 더하지 않는다.
또한 문자열의 첫글자를 대문자로 바꿔야하는데 숫자인 경우와 원래 대문자인 경우 원래 글자를 유지한다.
문자열의 두번째 글자부터 대문자는 소문자로 바꾸고, 소문자는 그대로 유지한다.
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string calc(string s){
string temp = "";
if(s[0] >= '0' && s[0] <= '9'){
temp += s[0];
}
else{
if(s[0] >= 'A' && s[0] <= 'Z')
temp += s[0];
else{
temp += s[0] - 32;
}
}
for(int i = 1;i<s.length();i++){
if(s[i] >= 'A' && s[i] <= 'Z')
temp += s[i] + 32;
else
temp += s[i];
}
return temp;
}
string solution(string s) {
string answer = "";
int idx = 0;
string temp = "";
for(int i = 0;i < s.length();i++){
if(s[i] == ' '){
if(!temp.empty()){
temp = calc(temp);
answer += temp;
}
answer += " ";
temp = "";
}
else{
temp += s[i];
}
}
if(!temp.empty()){
temp = calc(temp);
answer += temp;
}
return answer;
}
'Programmers Review' 카테고리의 다른 글
[Lv 2] 숫자 블록 (0) | 2024.06.27 |
---|---|
[Lv 2] 땅따먹기 (0) | 2024.06.24 |
[Lv 2] 줄 서는 방법 (0) | 2024.06.23 |
[Lv 2] 멀리 뛰기 (0) | 2024.06.23 |
[Lv 2] 숫자의 표현 (0) | 2024.06.23 |