문제 설명
모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 JadenCase 문자열을 return
https://school.programmers.co.kr/learn/courses/30/lessons/12951
문제 풀이법
if문의 조건을 통해 문제를 풀 수 있다
단, 조건을 세세히 줘야한다
우선, 문자열의 맨 앞이거나, 앞에 빈칸이 나왔을 경우와 그렇지 않은 경우로 나눈다
그렇지 않은 경우에는 문자가 대문자인 경우만 소문자로 변환하고, 아니면 그냥 문자열을 더한다
문자열의 맨 앞이거나, 앞에 빈칸이 나왔을 경우에는 문자가 숫자거나, 빈칸이거나, 대문자인 경우에는 그대로 입력하고 아닌 경우에는 소문자를 대문자로 바꿔서 저장한다
(문제를 풀었을 당시에는 반례들을 생각하며 쓰다보니 저렇게 or을 사용해서 조건을 걸었는데, 다시 생각해보니 소문자인 경우에만 대문자로 변환해주면 된다!)
소스 코드
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
int blank = 0;
for(int i = 0; i < s.size(); i++) {
if (i == 0 || blank == 1) {
blank = 0;
if ((s[i] >= '0' && s[i] <= '9') || s[i] == ' ' ||
(s[i] >= 'A' && s[i] <= 'Z'))
answer += s[i];
else
answer += s[i] - 32;
}
else
{
if (s[i] >= 'A' && s[i] <= 'Z')
answer += s[i] + 32;
else
answer += s[i];
}
if (s[i] == ' ')
blank = 1;
}
return answer;
}
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 2단계 - 올바른 괄호 (0) | 2023.12.27 |
---|---|
[프로그래머스] 2단계 - 최솟값 만들기 (0) | 2023.12.27 |
[프로그래머스] 1단계 - 가장 가까운 같은 글자 (0) | 2023.12.26 |
[프로그래머스] 2단계 - 최댓값과 최솟값 (0) | 2023.12.22 |
[프로그래머스] 1단계 - 과일 장수 (0) | 2023.12.22 |