Blog Content

    티스토리 뷰

    8958번 백준(Baekjoon)

    <문제>


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

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

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


    <정답 코드>


    이 문제 역시 cin과 cout을 사용했을 때 런타임에러가 발생하여 scanf와 printf를 사용했다.

    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 <cstring>
    #include <cstdio>
     
    using namespace std;
     
    int main()
    {
        int N, sum, count;
        char M[80];
        scanf("%d"&N);
        for (int i=0; i<N; i++)
        {
            scanf("%s", M);
            sum = 0;
            count = 0;
            for (int j = 0; j<strlen(M); j++)
            {
                if (M[j] == 'O')
                {
                    count++;
                }
                if(M[j] == 'X' || j == strlen(M)-1)
                {
                    sum += count * (count + 1/ 2;
                    count = 0;
                }
            }
            printf("%d\n", sum);
        }
    }
    cs


    'C++ 문제풀이' 카테고리의 다른 글

    1697번 백준(Baekjoon)  (0) 2018.09.24
    1929번 백준(Baekjoon)  (0) 2018.09.07
    1157번 백준(Baekjoon)  (0) 2018.09.06
    1152번 백준(Baekjoon)  (0) 2018.09.04
    1260번 백준(Baekjoon)  (0) 2018.08.30

    Comments