728x90
programmers.co.kr/learn/courses/30/lessons/12951
단순한 구현 문제다.
소문자, 대문자 구분을 위한
cctype 헤더 파일을 이용해서 아래의 함수들을 사용하면
isupper(), islower(), toupper(), tolower()
더 짧은 코드를 쓸 수 있을 것 같다.
그러나 그냥 아스키코드 값으로 처리하도록 코드를 썼다.
- c++
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
int len = s.length();
if ('a' <= s[0] && s[0] <= 'z') s[0] = (s[0] - 'a') + 'A';
for (int i = 1; i < len; ++i) {
if (s[i] == ' ' && i + 1 < len) {
if ('a' <= s[i + 1] && s[i + 1] <= 'z') {
s[i + 1] = (s[i + 1] - 'a') + 'A';
}
} else if ('A' <= s[i] && s[i] <= 'Z' && s[i - 1] != ' ') {
s[i] = (s[i] - 'A') + 'a';
}
}
answer = s;
return answer;
}
|
cs |
728x90
'PS' 카테고리의 다른 글
BOJ 11286 - 절댓값 힙 (0) | 2020.12.14 |
---|---|
BOJ 15684 - 사다리 조작 (0) | 2020.12.14 |
프로그래머스 - N 개의 최소공배수 (0) | 2020.12.09 |
프로그래머스 - 이진 변환 반복하기 (0) | 2020.12.09 |
프로그래머스 - 행렬의 곱셈 (0) | 2020.12.09 |