문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다.
각 단어는 하나 이상의 공백문자로 구분되어 있습니다.
각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
문제 유형
- 문자열 치환
의사코드
- 플래그 변수를 선언한다.
- [반복문] 문자열 길이만큼 반복한다.
- 문자열의 요소가 공백(' ')이라면 플래그를 초기화(true)한다.
- 플래그 값이 true라면 문자열의 요소를 대문자로 치환하고 다시 대입한다.
- 플래그 값이 false라면 문자열의 요소를 소문자로 치환하고 다시 대입한다.
- 플래그 값을 반전한다.
- 결과값을 반환한다.
코드 작성
#include <string>
#include <cctype>
using namespace std;
string solution(string s) {
bool flag = true;
for (int i = 0; i < s.length(); i++)
{
if (s[i] == ' ')
{
flag = true;
continue;
}
if (flag)
{
s[i] = toupper(s[i]);
}
else
{
s[i] = tolower(s[i]);
}
flag ^= true;
}
return s;
}
사용한 함수
- 소문자로 변환함수
- toupper(char)
- #include <cctype>
- 대문자로 변환함수
- tolower(char)
- #include <cctype>
'Algorithm > Practice' 카테고리의 다른 글
| [Algorithm] 크기가 작은 부분 문자열 (0) | 2024.12.26 |
|---|---|
| [Algorithm] 삼총사 (2) | 2024.12.26 |
| [Algorithm] 최대공약수와 최소공배수 (0) | 2024.12.23 |
| [Algorithm] 직사각형 별찍기 (1) | 2024.12.22 |
| [Algorithm] 행렬의 덧셈 (0) | 2024.12.20 |