본문 바로가기

Algorithm/String

(C++) - 프로그래머스(연습문제) : 이상한 문자 만들기

반응형

programmers.co.kr/learn/courses/30/lessons/12930

 

코딩테스트 연습 - 이상한 문자 만들기

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을

programmers.co.kr

문자열 처리 문제였습니다.

 

풀이방법

  문자열을 계속 더해가다가 공백마다 소 대문자 변경여부를 확인해줍니다.

Code

#include <string>

using namespace std;

string solution(string s) {
    string answer = "";
    string tmp = "";
    for(int i = 0 ; i < s.size(); i++){
        tmp+=s[i];

        if(s[i]==' ' || i == s.size()-1){
            for(int j = 0; j < tmp.size(); j++){
                if(j%2==0){
                    if('a'<=tmp[j] && tmp[j] <='z'){
                        answer += tmp[j]-'a'+'A';
                    }else answer += tmp[j];
                }else{
                    if('A'<=tmp[j] && tmp[j] <='Z'){
                        answer += tmp[j]-'A'+'a';
                    }else answer += tmp[j];
                }
            }
            tmp ="";
        }
    }
    return answer;
}