#include <bits/stdc++.h>
using namespace std;
string solution(string s)
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
string answer = "";
int cnt = 0;
queue<char> q;
vector<char> v;
for (int i = 0; i < s.size(); i++)
{
q.push((s[i]));
}
while (!q.empty())
{
if (q.front() == ' ')
{
v.push_back(q.front());
q.pop();
cnt = 0;
continue;
}
if (cnt == 0 || cnt % 2 == 0)
{
if (q.front() >= 97 && q.front() <= 122)
{
v.push_back(q.front() - 32);
q.pop();
cnt++;
}
else if (q.front() >= 65 && q.front() <= 90)
{
v.push_back(q.front());
q.pop();
cnt++;
}
}
else if (cnt % 2 != 0)
{
if (q.front() >= 97 && q.front() <= 122)
{
v.push_back(q.front());
q.pop();
cnt++;
}
else if (q.front() >= 65 && q.front() <= 90)
{
v.push_back(q.front() + 32);
q.pop();
cnt++;
}
}
}
for (int i = 0; i < v.size(); i++)
{
answer += v[i];
}
cout << answer << endl;
return answer;
}
Queue 자료구조를 이용해봄.
cnt
는 인덱스 번호,
빠져나갈때, 대문자면 그대로 v
에 push
하고 pop
된다.
소문자면 +32
(소문자로) 아니면 -32
(대문자로) 변경한다.