본문 바로가기
알고리즘/프로그래머스

알고리즘(C++) / 프로그래머스 level 2 : JadenCase 문자열 만들기

by clean_h 2021. 9. 21.
728x90

level 2 : JadenCase 문자열 만들기

https://programmers.co.kr/learn/courses/30/lessons/12951?language=cpp 

 

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

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건

programmers.co.kr

 

코드

//프로그래머스 JadenCase 문자열 만들기
#include <iostream>
#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    int check = 1;
    for (int i = 0; i < s.size(); i++) {
        if (check == 1) {
            if (islower(s[i])) //소문자일때
                s[i] = s[i] - 32; //대문자 변환
        }
        else if (isupper(s[i])) { //대문자일떄
            if(check != 1)
                s[i] = s[i] + 32; //소문자 변환
        }

        if (isspace(s[i]))  check = 1;
        
        else   check = 0;

    }
    return s;
}

int main() {
    string s = "3people unFollowed me";
    cout << solution(s) << "\n";
    return 0;
}

 

설명

  • check는 첫문자를 판단한다. 따라서 첫문자가 알파벳 소문자일 때 대문자로 변환한다.
  • 첫문자가 아닌 문자가 대문자일 때 소문자로 변환한다.
  • 문자가 공백일때 check는 1 공백이 아닐때 check는 0으로 바꾼다.

 

고찰

걸린시간 : 20분

알파벳 판별, 대소문자 판별함수를 사용하여 문제를 쉽게 해결할 수 있었다.

728x90

댓글