본문 바로가기

📚Algorithm ------------/백준

백준 8958번: OX 퀴즈 (C++)

https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

 


 

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int countOXStr(string ox_str)
{
    int len = ox_str.length();
    int sum = 0;
    int score = 0;

    for( int i = 0; i < len; i++ )
    {
        auto ox = ox_str.at(i);
        if( ox == 'O' )
        {
            score++;
        }
        else if( ox == 'X' )
        {
            score = 0;
        }
        else
            continue;

        sum += score;
    }
    return sum;
}
int main(void)
{
    int cnt = -1;
    cin >> cnt;
    if( cnt < 0 ) return -1;

    vector<string> ox_arry;
    for(int i=0; i<cnt; i++)
    {
        string ox_str;
        cin >> ox_str;

        if( ox_str.empty() || ox_str.length() > 80 )
            return -10;

        ox_arry.push_back(ox_str);
    }

    for( auto const &ox_str : ox_arry )
    {
        cout << countOXStr(ox_str) << endl;
    }

    return 0;
}

 

Char형 배열로 입력을 받아서 하는 예제가 많이 보였다

근데 나는 C에서 문자열 배열을 너무 싫어해서 string으로 했다 -_-a

메모리 그켬