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

[프로그래머스] Lv2. JadenCase 문자열 만들기

by 오오오니 2022. 11. 25.

문제 자체는 어렵지 않았는데 대문자 변환과 소문자 변환이 헷갈렸다.

편집기의 자동완성 기능에 의존하다 보니까 함수의 사용법이 헷갈렸다.

그리고 A와 a의 아스키코드를 까먹어서 찾아보고 풀었다. a:97 ,A:65

1. 대문자변환 toupper(s[i]), 소문자 변환 tolower(s[i])

2.대문자 변환  s[i]-32 , 소문자 변환 s[i]+=32

 

풀이:

1.글자가 숫자면 넘어간다.

2.공백이면 check를 true로 바꾼다.

3. 전글자에 공백이 나오고 소문자이면 대문자로 바꾸어준다.

4.전글자에 공백이 나오지 않았는데 대문자이면 소문자로 바꾸어준다.

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

 

프로그래머스

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

programmers.co.kr

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

string solution(string s) {
    string answer = "";
    answer=s;
    int size= s.length();
    
     bool check=true;
    for(int i=0;i<size;i++)
    {
        if(s[i]-'0'>=0&&s[i]-'0'<=9)
        {  
            check=false;
            continue;
        }
        if(check&&answer[i]>=97)
        {   answer[i]-=32;
            check=true;
           
        }
        if(!check&&answer[i]>=65&&answer[i]<97)//첫글자가 아니고 대문자면
            answer[i]+=32;
        if(s[i]==' ')
            check=true;  
        else
            check=false;
        
    }
    return answer;
}