본문 바로가기

프로그래밍_백준/C++

(C++) 백준 8958번 OX퀴즈

728x90
반응형

 

백준 8958번 문제는 OX문제입니다.

먼저 반복할 횟수를 입력 받고 그 다음 OX를 입력 받습니다

O일 경우 sum에 point 값을 더해주고 연속된 값이면 point++값을 더합니다

연속이 깨지면 다시 1로 초기화합니다! 

 

#include<iostream>
#include<string>
using namespace std;

int main()
{
	int num = 0, sum = 0, point = 1;
	int n;
	string str;

	cin >> n;//반복할 횟수
	cin.ignore();//cin에는 기본적으로 "\n"이 있기 때문에 getline()함수가 정상적으로 작동하려면 필요함.

	for (int j = 0; j < n; j++) {
		getline(cin, str);
		
        for (int i = 0; i < str.length(); i++) {
			if (str[i] == 'O') {
				sum += point;
				point++;
			}//"O"의 값을 만나면 sum에 point 값을 더하고 연속된 값이 나오는 경우 1씩 증가하면서 더함
			else {
				point = 1;
			}//연속이 아닐 경우 1부터 다시 시작
		}
        
		cout << sum << endl;
		sum = 0;//0으로 초기화 후 다음 값을 받음
		point = 1;//1로 초기화
	}
}
728x90
반응형