해설
문자열을 이루는 모든 단어들에 대하여 첫글자는 대문자로, 나머지 글자는 소문자로 변경하는 문제이다.
첫글자는 toupper(), 나머지 글자들은 tolower() 함수로 변경하면 정답이다.
참고 하면 좋을 것
toupper()는 소문자를 대문자로 변경하는 함수, tolower()는 대문자를 소문자로 변경하는 함수로 <cctype> 헤더파일 내에 있다.
영어 문자가 아닌 다른 문자에 대해서는 원래 문자를 그대로 반환한다.
코드
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <tuple>
#include <vector>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <cctype>
#include <iostream>
using namespace std;
using ii = pair<int, int>;
using iii = tuple<int, int, int>;
#define X first
#define Y second
string solution(string s) {
string ans = "";
int i = 0;
while (i < s.size()) {
ans += toupper(s[i++]);
while (i < s.size() && s[i] != ' ') ans += tolower(s[i++]);
while (i < s.size() && s[i] == ' ') ans += s[i++];
}
return ans;
}
'대딩 > 프로그래머스풀이' 카테고리의 다른 글
[프로그래머스 lv2] 행렬의 곱셈 풀이 (0) | 2022.08.14 |
---|---|
[프로그래머스 lv2] 최댓값과 최솟값 풀이 (0) | 2022.08.14 |
[프로그래머스 lv2] N개의 최소공배수 풀이 (0) | 2022.08.13 |
[프로그래머스 lv2] 모음사전 풀이 (0) | 2022.08.13 |
[프로그래머스 lv2] 피로도 풀이 (0) | 2022.08.13 |
댓글