728x90
안녕하세요 뚜디 입니다:)
코딩테스트 연습 - 이상한 문자 만들기 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 이상한 문자 만들기
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을
programmers.co.kr
1. 연습 문제
2. 문제 풀이
3. 소스 코드
4. 결과
1. 연습 문제
- 문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
- 제한 조건
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
- 입출력 예
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
2. 문제 풀이
1. 제한 조건 "문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다" 이므로 문자열 s의 인덱스가 ' ' 공백을 가르킬때, index는 0 으로 초기화해주는 조건이 필요하다.
2. 짝/홀 에 따라 대소문자 로 변경하며, 입력받는 문자열 s는 대소문자가 섞여서 들어올수있다는 점을 명심하자
3. 소스 코드
#include <string>
using namespace std;
string solution(string s) {
string answer = "";
int index = 0;
for (int i = 0; i < s.length(); i++) {
if (s[i] == ' ') {
index = 0;
continue;
}
if (index % 2 == 1) {
if ('A' <= s[i] && s[i] <= 'Z') {
s[i] += 32;
}
} else {
if ('a' <= s[i] && s[i] <= 'z') {
s[i] -= 32;
}
}
index++;
}
return answer = s;
}
4. 결과
728x90
'Programmers > C++' 카테고리의 다른 글
[C++] 프로그래머스 :: 시저 암호 (0) | 2021.09.18 |
---|---|
[C++] 프로그래머스 :: 약수의 합 (0) | 2021.09.17 |
[C++] 프로그래머스 :: 자릿수 더하기 (0) | 2021.09.17 |
[C++] 프로그래머스 :: 자연수 뒤집어 배열로 만들기 (0) | 2021.09.16 |
[C++] 프로그래머스 :: 정수 내림차순으로 배치하기 (0) | 2021.09.16 |