문제 자체는 어렵지 않았는데 대문자 변환과 소문자 변환이 헷갈렸다.
편집기의 자동완성 기능에 의존하다 보니까 함수의 사용법이 헷갈렸다.
그리고 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;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 디펜스 게임 c++ (0) | 2023.01.01 |
---|---|
[프로그래머스] 두 큐 합 같게 만들기 c++ (0) | 2022.12.08 |
[프로그래머스] 문자열 압축 c++ (0) | 2022.12.03 |
[프로그래머스] 행렬의 곱셉 c++ (0) | 2022.12.02 |
[프로그래머스] 점프와 순간 이동 c++ (0) | 2022.12.01 |