본문 바로가기
7장 기타/백준 BOJ

[백준/BOJ] 8958번 OX퀴즈 (C++)

2021. 5. 10.

)

 

8958번: OX퀴즈

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

www.acmicpc.net

문제의 소재

테스트의 수가 주어지고 각각의 테스트마다 결과가 O 또는 X가 들어간 문자열로 주어진다. 답을 맞추면 1점 틀리면 0점이고 연속해서 답을 맞추면 전 문제의 점수를 추가로 얻을 수 있을 때 총점을 구하는 문제이다.

해답

// BOJ_8958.cpp
#include<iostream>
#include<string>
using namespace std;

int main()
{
    int N, len, total;
    string str;
    
    cin>>N;
    for (int i=0;i<N;i++)
    {
        cin>>str;
        len = str.size()+1;
        int score[len] = {0};
        total = 0;
        for (int j=0;j<len;j++)
        {
            if (str[j] == 'O') score[j+1] = score[j]+1;
            else score[j+1] = 0;
            total += score[j+1];
        }
        cout<<total<<endl;
    }

    return 0;
}
반응형

댓글