#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
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스/C++] 가장 큰 수 (0) | 2022.01.28 |
---|---|
[프로그래머스/C++] 큰 수 만들기 (0) | 2022.01.20 |
[프로그래머스/C++] 하샤드 수 (0) | 2022.01.17 |
[프로그래머스/C++] K번째수 (0) | 2022.01.16 |
[프로그래머스/C++] 2016년 (0) | 2022.01.16 |