쌓고 쌓다

[프로그래머스] 이상한 문자 만들기 C++ 풀이 본문

알고리즘/프로그래머스

[프로그래머스] 이상한 문자 만들기 C++ 풀이

승민아 2022. 7. 7. 20:36

https://school.programmers.co.kr/learn/courses/30/lessons/12930?language=cpp# 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

전체 코드

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    string answer = "";
    int idx=0;
    for(int i=0;i<s.length();i++)
    {
        if(s[i]==' ')
            idx=0;
        else
        {
            if(s[i]>='a'&&s[i]<='z')
            {
                if(idx%2==0)
                    s[i]=s[i]-'a'+'A';
            }
            else 
            {
                if(idx%2!=0)
                    s[i]=s[i]-'A'+'a';
            }
            idx++;
        }
    }
    answer=s;
    return answer;
}

 

단어의 인덱스를 idx를 통해 관리합니다.

공백을 만나면 단어의 시작을 뜻하므로 홀/짝 구분을 위한 idx를 0으로 초기화합니다.

 

문자가 소문자인 경우, 짝수이면 대문자로 바꾸어줍니다.

if(s[i]>='a'&&s[i]<='z')
{
	if(idx%2==0)
		s[i]=s[i]-'a'+'A';
}

 

문자가 대문자인 경우, 홀수이면 소문자로 바꾸어줍니다. 

else 
{
	if(idx%2!=0)
		s[i]=s[i]-'A'+'a';
}

 

 

Comments