알고리즘

백준 : : 8958번 OX퀴즈 - C++ 풀이

green333 2022. 1. 11. 23:40
728x90
SMALL

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

 

8958번: OX퀴즈

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

www.acmicpc.net

 

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
#include <iostream>
#include <string>
using namespace std;
//"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
//X만나면 count = 0
// count는 0으로 시작. O만나면 total += ++count;
 
int main(void){
    int count, total = 0;
    int testNum;
    string str;
 
    cin >> testNum;
    for(int i = 0 ; i < testNum; i++){
        count = 0
        total = 0;
        cin >> str;
        for(int j = 0 ; j < str.size(); j++){
            if(str[j] == 'O'){
                total += ++count;
            }
            else{
                count = 0;
                continue;
            }
        }
        cout << total << endl;
    }
    return 0;
}
 
cs
문제 풀이

1. 입력한 test 개수 만큼 for문 돌리기

2. 한 줄씩 for문에 넣어서 

3. O만나면 count를 하나 증가시키고 total에 더해줌

4. X만나면 count를 0으로 초기화

 

 

 

다른 사람들의 코드도 한번 봐야겠다!
LIST