[Programmers] JadenCase 문자열 만들기
Date:
[Programmers] JadenCase 문자열 만들기
Problem URL : JadenCase 문자열 만들기
풀이 1(sstream 을 이용한 풀이)
#include <string>
#include <vector>
#include <cstring>
#include <sstream>
using namespace std;
string solution(string s) {
istringstream ss(s);
string stringBuffer;
vector<string> x;
while (getline(ss, stringBuffer, ' ')){
stringBuffer[0] = toupper(stringBuffer[0]);
for (int i = 1; i < stringBuffer.size(); i++) {
stringBuffer[i] = tolower(stringBuffer[i]);
}
x.push_back(stringBuffer);
}
string answer = "";
answer = x[0];
for(int i = 1; i < x.size(); i++) {
answer += " ";
answer += x[i];
}
// 마지막 공백부분 체크
if(answer.size() < s.size()) {
answer += s.substr(answer.size(), s.size() - answer.size());
}
return answer;
}
풀이 2 (단순 깔금한 풀이)
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
int size = s.size();
bool blank = true;
for(int i = 0; i < size; i++) {
if(blank) {
s[i] = toupper(s[i]);
// 공백이 연속될 수도 있다.
if(s[i] != ' ') {
blank = false;
}
}else{
s[i] = tolower(s[i]);
if(s[i] == ' ') {
blank = true;
}
}
}
return s;
}
Comments
당연하지만 풀이 2가 훨신 빠르다.
게다가 깔금하다.
댓글