본문 바로가기

Problem Solving/프로그래머스

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

프로그래머스 JadenCase 문제 설명


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

string solution(string s) {
    if(!isdigit(s[0])) s[0] = toupper(s[0]);
    for(int i = 1; i < s.length(); i++) {
        if(isdigit(s[i])) continue;
        if(isupper(s[i])) s[i] = tolower(s[i]);
        if(isspace(s[i-1]) && isalpha(s[i])) s[i] = toupper(s[i]);
    }
    return s;
}

이 문제는 단어의 첫글자가 알파벳이면 대문자로 만든 문자열을 출력하는 문제입니다.

간단하게 숫자라면 계속 넘어가고 대문자는 소문자로 바꿔주고 이전 값이 공백이고 현재 값이 문자라면 대문자로 변경하도록 하여

O(N) 시간 복잡도와 O(1) 공간 복잡도로 문제를 풀어냈습니다.


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

 

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

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

programmers.co.kr