백준/백준 단계별 문제풀이

백준 8958번 (C++)

FDEE 2020. 8. 21. 16:33

www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

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

www.acmicpc.net

 

<답안>

#include <iostream>

using namespace std;

int main() {

    int n;

    int count = 0, sum = 0;

    string input = "";

    cin>>n;

    for(int i=0; i<n; i++)

    {

        cin>>input;

        for(int strInx=0; strInx<input.size(); strInx++)

        {

            if(input.at(strInx) == 'O')

            {

                count++;

                sum += count;

            }

            else

            {

                count = 0;

            }

        }

        cout<<sum<<"\n";

        count = 0;

        sum = 0;

    }

    

    return 0;

}

 

<설명>

인덱스 i=0부터 n-1까지 n번 돌리며 입력을 받는다

입력값을 string 형태인 input으로 받아 저장한다

   스트링의 인덱스 strInx=0부터 스트링의 크기( size()) -1까지 증가시킨다

   만약 input[strInx] 값이 'O'인 경우

      count를 증가시킨다

      누적값인 sum에 count 값을 더한다

   만약 'O'이 아닌 경우

      count값을 0으로 수정한다

   스트링 각 인덱스 확인이 종료되면 sum값을 출력한다

n번 반복하며 sum값을 출력 후 종료한다

 

'백준 > 백준 단계별 문제풀이' 카테고리의 다른 글

백준 15596번 (C++)  (0) 2020.08.21
백준 4344번 (C++)  (0) 2020.08.21
백준 1546번 (C++)  (0) 2020.08.21
백준 3052번 (C++)  (0) 2020.08.21
백준 2577번 (C++)  (0) 2020.08.21