티스토리 뷰

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

 

코딩테스트 연습 - JadenCase 문자열 만들기

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고

programmers.co.kr

 

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

 

#include <string>
#include <vector>

using namespace std;

bool isLower(char c) {
	if (c >= 'a' && c <= 'z') return true;
	return false;
}

bool isUpper(char c) {
	if (c >= 'A' && c <= 'Z') return true;
	return false;
}

string solution(string s) {
	if (isLower(s[0])) {
		s[0] = s[0] - 'a' + 'A';
	}

	for (int i = 1; i < s.length(); i++) {
		if (s[i - 1] == ' ') {
			if (isLower(s[i]))
				s[i] = s[i] - 'a' + 'A';
		}
		else {
			if (isUpper(s[i]))
				s[i] = s[i] - 'A' + 'a';
		}
	}

	return s;
}

 

 

이렇게 간결하게 짜는 방법도 있다..

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    string answer = "";

    answer += toupper(s[0]);
    for (int i = 1; i < s.size(); i++)
        s[i - 1] == ' ' ? answer += toupper(s[i]) : answer += tolower(s[i]);

    return answer;
}
댓글