이상한 문자 만들기

김현민·2021년 3월 20일
0

Algorithm

목록 보기
46/126
post-thumbnail

문제

코드

#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는 인덱스 번호,
빠져나갈때, 대문자면 그대로 vpush하고 pop된다.
소문자면 +32 (소문자로) 아니면 -32 (대문자로) 변경한다.

profile
Jr. FE Dev

0개의 댓글