프로그래밍 study/cpp study 백준

[백준] 8958번 OX퀴즈 C++ 문제 풀이 1D ARRY - 6

박재완 2021. 4. 22. 09:00
728x90
반응형

문제

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

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

출력

각 테스트 케이스마다 점수를 출력한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//
//  main.cpp
//  8958
//
//  Created by 박재완 on 2021/03/27.
//
 
#include <iostream>
#include <string.h>
 
using namespace std;
 
char quiz [81];
int number = 0;
int score = 0;
int bounes = 1;
 
int main(int argc, const char * argv[]) {
    cin >> number ;
    for(int i = 0; i < number ; i ++){
        score = 0;
        bounes = 1;
        cin>>quiz;
        //check score!!
        for(int t = 0 ; t < strlen(quiz) ; t++){
            if(quiz[t] == 'O'){
                //cout << "right!\n";
                score += bounes;
                bounes++;
            }else if (quiz[t] == 'X'){
                //cout << "worng!!\n";
                bounes = 1;
            }
        }
        cout << score  << endl;
    }
    //cout << "length : " << strlen(quiz) << endl;
    return 0;
}
cs

 

728x90
반응형