Algorihtm/프로그래머스

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

JongHo.dev 2023. 10. 30. 13:38
728x90
728x90
SMALL

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

1. 공백까지 문자열을 받은 후

2. 맨 첫 번째 글자가 소문자인 경우에 대문자로 바꿔준다.

3. 나머지는 소문자로 바꿔주는데 여기서, 첫 문자가 알파벳이 아닐 경우에도 소문자로 바꿔줘야 한다는 점! 함정이야,,

 

tolower, toupper 함수도 있지만 아스키코드를 이용해서 +32, -32를 이용해서 구현했다.


#include <string>
#include <vector>
using namespace std;

string solution(string s) {
    string answer = "";
    string tmp="";
    for(int i=0;i<s.size();i++){    
        tmp+=s[i];
        if(s[i]==' '||i==s.size()-1){ //공백을 만났을 때, 맨 끝일 때
             if(tmp[0]>='a'&&tmp[0]<='z'){ // 맨 첫번째 문자가 소문자인 경우 
                tmp[0] -=32; // 대문자 변환
             }
             for(int j=1;j<tmp.size();j++){
                if(tmp[j]>='A'&&tmp[j]<='Z') // 대문자 -> 소문자변환
                    tmp[j]+=32;
            } // for
            answer += tmp;
            tmp="";
        } // if
    } // for
    return answer;
}
728x90
728x90
LIST