728x90
level 2 : JadenCase 문자열 만들기
https://programmers.co.kr/learn/courses/30/lessons/12951?language=cpp
코딩테스트 연습 - JadenCase 문자열 만들기
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건
programmers.co.kr
코드
//프로그래머스 JadenCase 문자열 만들기
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
int check = 1;
for (int i = 0; i < s.size(); i++) {
if (check == 1) {
if (islower(s[i])) //소문자일때
s[i] = s[i] - 32; //대문자 변환
}
else if (isupper(s[i])) { //대문자일떄
if(check != 1)
s[i] = s[i] + 32; //소문자 변환
}
if (isspace(s[i])) check = 1;
else check = 0;
}
return s;
}
int main() {
string s = "3people unFollowed me";
cout << solution(s) << "\n";
return 0;
}
설명
- check는 첫문자를 판단한다. 따라서 첫문자가 알파벳 소문자일 때 대문자로 변환한다.
- 첫문자가 아닌 문자가 대문자일 때 소문자로 변환한다.
- 문자가 공백일때 check는 1 공백이 아닐때 check는 0으로 바꾼다.
고찰
걸린시간 : 20분
알파벳 판별, 대소문자 판별함수를 사용하여 문제를 쉽게 해결할 수 있었다.
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
알고리즘(C++) / 프로그래머스 위클리챌린지 : 최소직사각형 (0) | 2021.09.27 |
---|---|
알고리즘(C++) / 프로그래머스 level 3 : 가장 긴 팰린드롬 (0) | 2021.09.24 |
알고리즘(C++) / 프로그래머스 level 2 : H-Index (0) | 2021.09.17 |
알고리즘(C++) / 프로그래머스 level 2 : 소수 찾기 (0) | 2021.09.16 |
알고리즘(C++) / 프로그래머스 level 1 : 제일 작은 수 제거하기 (0) | 2021.09.15 |
댓글